Assembly Diffs

linux arm64

Diffs are based on 2,498,771 contexts (1,011,240 MinOpts, 1,487,531 FullOpts).

MISSED contexts: 6,580 (0.26%)

Overall (+147,632 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 15,908,516 +0
benchmarks.run_pgo.linux.arm64.checked.mch 78,672,796 +1,492
benchmarks.run_tiered.linux.arm64.checked.mch 29,592,944 +620
coreclr_tests.run.linux.arm64.checked.mch 508,895,360 +143,476
libraries.crossgen2.linux.arm64.checked.mch 55,781,064 +0
libraries.pmi.linux.arm64.checked.mch 74,608,176 +0
libraries_tests.run.linux.arm64.Release.mch 383,838,152 +1,936
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 163,129,488 +108
realworld.run.linux.arm64.checked.mch 15,368,676 +0

MinOpts (+147,632 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch 346,256 +0
benchmarks.run_pgo.linux.arm64.checked.mch 23,982,040 +1,492
benchmarks.run_tiered.linux.arm64.checked.mch 24,621,220 +620
coreclr_tests.run.linux.arm64.checked.mch 348,829,192 +143,476
libraries.crossgen2.linux.arm64.checked.mch 1,636 +0
libraries.pmi.linux.arm64.checked.mch 119,984 +0
libraries_tests.run.linux.arm64.Release.mch 215,421,676 +1,936
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 13,479,996 +108
realworld.run.linux.arm64.checked.mch 574,152 +0

Example diffs

benchmarks.run.linux.arm64.checked.mch

+0 (0.00%) : 3345.dasm - BenchmarkDotNet.Autogenerated.Runnable150:ForDisassemblyDiagnoser_():System.String:this (MinOpts)

@@ -28,8 +28,8 @@ G_M15325_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bne G_M15325_IG04 ldr x0, [fp, #0x28] // [V00 this] ; gcrRegs +[x0]
- ldr d0, [x0, #0x50] - str d0, [fp, #0x20] // [V01 loc0]
+ ldr d16, [x0, #0x50] + str d16, [fp, #0x20] // [V01 loc0]
ldr x0, [fp, #0x28] // [V00 this] ldr x0, [x0, #0x40] str x0, [fp, #0x18] // [V02 loc1]

+0 (0.00%) : 5229.dasm - BenchmarkDotNet.Autogenerated.Runnable146:ForDisassemblyDiagnoser_():System.Runtime.Intrinsics.Vector128`1[ulong]:this (MinOpts)

@@ -39,8 +39,8 @@ G_M51349_IG03: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=8 bbWeight=1 PerfScore 2.00 G_M51349_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0 - str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0 + str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0] ;; size=12 bbWeight=1 PerfScore 3.50 G_M51349_IG05: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 5257.dasm - BenchmarkDotNet.Autogenerated.Runnable101:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M62529_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0x38] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x40]
+ ldr x1, [fp, #0x38] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x40]
add x8, fp, #24 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0x38] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

+0 (0.00%) : 30616.dasm - BenchmarkDotNet.Autogenerated.Runnable174:ForDisassemblyDiagnoser_():MicroBenchmarks.Serializers.StructRecord:this (MinOpts)

@@ -68,8 +68,8 @@ G_M62134_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { ; byrRegs +[x13] bl CORINFO_HELP_ASSIGN_BYREF bl CORINFO_HELP_ASSIGN_BYREF
- ldp x12, x15, [x13], #0x10 - stp x12, x15, [x14], #0x10
+ ldp x0, x1, [x13], #0x10 + stp x0, x1, [x14], #0x10
;; size=32 bbWeight=1 PerfScore 11.50 G_M62134_IG05: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x50

+0 (0.00%) : 30712.dasm - BenchmarkDotNet.Autogenerated.Runnable119:ForDisassemblyDiagnoser_():System.Numerics.Vector`1[float]:this (MinOpts)

@@ -39,8 +39,8 @@ G_M9709_IG03: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=8 bbWeight=1 PerfScore 2.00 G_M9709_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0 - str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0 + str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0] ;; size=12 bbWeight=1 PerfScore 3.50 G_M9709_IG05: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 30764.dasm - BenchmarkDotNet.Autogenerated.Runnable173:ForDisassemblyDiagnoser_():MicroBenchmarks.Serializers.LargeStructWithProperties:this (MinOpts)

@@ -58,10 +58,10 @@ G_M40642_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { bl CORINFO_HELP_ASSIGN_BYREF bl CORINFO_HELP_ASSIGN_BYREF bl CORINFO_HELP_ASSIGN_BYREF
- ldp x12, x15, [x13], #0x10 - stp x12, x15, [x14], #0x10 - ldr x12, [x13], #0x08 - str x12, [x14], #0x08
+ ldp x0, x1, [x13], #0x10 + stp x0, x1, [x14], #0x10 + ldr x0, [x13], #0x08 + str x0, [x14], #0x08
;; size=56 bbWeight=1 PerfScore 19.00 G_M40642_IG05: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x60

benchmarks.run_pgo.linux.arm64.checked.mch

-8 (-7.14%) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf1[float]:DivisionOperatorBenchmark():System.Numerics.Vector1[float]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[float]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[float]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M16645_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M16645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M16645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M16645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - fdiv v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + fdiv v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 30.00 G_M16645_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 37.50, instruction count 28, allocated bytes for code 112 (MethodHash=6743befa) for method System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 34.50, instruction count 26, allocated bytes for code 104 (MethodHash=6743befa) for method System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 18785.dasm - System.Numerics.Tests.Perf_VectorOf1[ulong]:AddBenchmark():System.Numerics.Vector1[ulong]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ulong]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ulong]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M47405_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M47405_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M47405_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M47405_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - add v0.2d, v8.2d, v0.2d
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + add v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00 G_M47405_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=23c946d2) for method System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=23c946d2) for method System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 22993.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M21176_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M21176_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M21176_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M21176_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - smin v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + smin v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00 G_M21176_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=8963ad47) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=8963ad47) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 55879.dasm - System.MathF:CopySign(float,float):float (Tier0)

@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str s1, [fp, #0x18] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr s16, [fp, #0x18] // [V01 arg1] - ldr s17, [fp, #0x1C] // [V00 arg0] - bsl v0.4s, v16.4s, v17.4s - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr s17, [fp, #0x18] // [V01 arg1] + ldr s18, [fp, #0x1C] // [V00 arg0] + bsl v16.4s, v17.4s, v18.4s + dup s0, v16.s[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 1280.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector1281[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte

@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - uqxtn v0.8b, v0.8h - ldr q16, [fp, #0x10] // [V01 arg1] - uqxtn2 v0.16b, v16.8h - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + uqxtn v16.8b, v16.8h + ldr q17, [fp, #0x10] // [V01 arg1] + uqxtn2 v16.16b, v17.8h + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 19329.dasm - System.Runtime.Intrinsics.Vector128:Createbyte:System.Runtime.Intrinsics.Vector128`1byte

@@ -19,16 +19,17 @@ G_M51682_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M51682_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M51682_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

benchmarks.run_tiered.linux.arm64.checked.mch

-8 (-7.14%) : 18337.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector1281[ushort]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M38061_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M38061_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M38061_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M38061_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - add v0.8h, v8.8h, v0.8h
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + add v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 19.00 G_M38061_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=00d86b52) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=00d86b52) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector1[int]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[int]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[int]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M61916_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M61916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - cmge v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + cmge v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00 G_M61916_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=95300e23) for method System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=95300e23) for method System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 21153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector1281[ushort]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M29641_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M29641_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M29641_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M29641_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - eor v0.8h, v8.8h, v0.8h
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + eor v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 18.50 G_M29641_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=efce8c36) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=efce8c36) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 33055.dasm - System.MathF:CopySign(float,float):float (Tier0)

@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str s1, [fp, #0x18] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr s16, [fp, #0x18] // [V01 arg1] - ldr s17, [fp, #0x1C] // [V00 arg0] - bsl v0.4s, v16.4s, v17.4s - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr s17, [fp, #0x18] // [V01 arg1] + ldr s18, [fp, #0x1C] // [V00 arg0] + bsl v16.4s, v17.4s, v18.4s + dup s0, v16.s[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector1281[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte

@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - uqxtn v0.8b, v0.8h - ldr q16, [fp, #0x10] // [V01 arg1] - uqxtn2 v0.16b, v16.8h - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + uqxtn v16.8b, v16.8h + ldr q17, [fp, #0x10] // [V01 arg1] + uqxtn2 v16.16b, v17.8h + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 10507.dasm - System.Runtime.Intrinsics.Vector128:Createbyte:System.Runtime.Intrinsics.Vector128`1byte

@@ -19,16 +19,17 @@ G_M51682_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M51682_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M51682_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7a23361d) for method System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

coreclr_tests.run.linux.arm64.checked.mch

-8 (-6.67%) : 317154.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)

@@ -10,22 +10,21 @@ ; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4> ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp str s0, [fp, #0x30] // [V00 arg0] str s1, [fp, #0x34] // [V00 arg0+0x04] str s2, [fp, #0x38] // [V00 arg0+0x08] str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref fmov s16, #1.0000 str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1] ldr s0, [fp, #0x20] // [V02 tmp1] ldr s1, [fp, #0x24] // [V02 tmp1+0x04] @@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c] ;; size=80 bbWeight=1 PerfScore 26.00 G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48] - ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -68,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72] - 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! - E4 end - E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end E4 end

-12 (-6.12%) : 317628.dasm - Performance_2700:TestEntryPoint():int (Tier0)

@@ -11,15 +11,14 @@ ; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable" ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]! - str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp str xzr, [fp, #0x40] // [V00 loc0] str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -29,8 +28,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0] movi v16.4s, #0 str q16, [fp, #0x30] // [V02 tmp1] @@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov w0, wzr ;; size=148 bbWeight=1 PerfScore 40.50 G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #100 ;; size=4 bbWeight=1 PerfScore 0.50 G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -97,10 +94,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88] - 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! - E4 end - E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end E4 end

-16 (-5.06%) : 230911.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)

@@ -7,7 +7,7 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3> ; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" @@ -21,20 +21,18 @@ ; TEMP_02 float -> [fp+0x70] ; TEMP_01 float -> [fp+0x6C] ;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8] - str d10, [sp, #0xE8] - stp x19, x20, [sp, #0xF0] - stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0] + stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E] stp x25, x26, [sp, #0xD1FFAB1E] stp x27, x28, [sp, #0xD1FFAB1E] mov fp, sp str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz add x0, fp, #32 // [V09 PInvokeFrame+0x08] mov x1, x12 @@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x1, fp, #32 // [V09 PInvokeFrame+0x08] ; byrRegs +[x1] str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop nop ldr x0, [fp, #0x60] // [V04 tmp1] @@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend ; gcr arg pop 0 ;; size=52 bbWeight=1 PerfScore 13.50 G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03] - str s8, [fp, #0x90] // [V06 tmp3] - ldr s9, [fp, #0x70] // [TEMP_02] - str s9, [fp, #0x94] // [V06 tmp3+0x04] - ldr s10, [fp, #0x6C] // [TEMP_01] - str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03] + str s16, [fp, #0x90] // [V06 tmp3] + ldr s17, [fp, #0x70] // [TEMP_02] + str s17, [fp, #0x94] // [V06 tmp3+0x04] + ldr s18, [fp, #0x6C] // [TEMP_01] + str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop ldr q16, [fp, #0x90] // [V06 tmp3] str q16, [fp, #0xB0] // [V02 loc2] @@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend ldp x27, x28, [sp, #0xD1FFAB1E] ldp x25, x26, [sp, #0xD1FFAB1E] ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E] - ldp x19, x20, [sp, #0xF0] - ldr d10, [sp, #0xE8] - ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0] + ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -145,10 +141,8 @@ Unwind Info: E6 save_next E6 save_next E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240] - DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232] - D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216] - A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224] + A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end E4 end E4 end

+44 (+73.33%) : 84135.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector641[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

+44 (+73.33%) : 45896.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[ubyte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector1281[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50] +; TEMP_04 simd16 -> [fp+0x40] +; TEMP_03 simd16 -> [fp+0x30] +; TEMP_02 simd16 -> [fp+0x20] +; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M246_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0] - str q1, [fp, #0x20] // [V01 arg1] - str q2, [fp, #0x30] // [V01 arg1+0x10] - str q3, [fp, #0x40] // [V01 arg1+0x20] - str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0] + str q1, [fp, #0x70] // [V01 arg1] + str q2, [fp, #0x80] // [V01 arg1+0x10] + str q3, [fp, #0x90] // [V01 arg1+0x20] + str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M246_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0] - ldr q16, [fp, #0x20] // [V01 arg1] - ldr q17, [fp, #0x30] // [V01 arg1+0x10] - ldr q18, [fp, #0x40] // [V01 arg1+0x20] - ldr q19, [fp, #0x10] // [V02 arg2] - tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0] + str q16, [fp, #0x50] // [TEMP_05] + ldr q16, [fp, #0x70] // [V01 arg1] + str q16, [fp, #0x40] // [TEMP_04] + ldr q16, [fp, #0x80] // [V01 arg1+0x10] + str q16, [fp, #0x30] // [TEMP_03] + ldr q16, [fp, #0x90] // [V01 arg1+0x20] + str q16, [fp, #0x20] // [TEMP_02] + ldr q16, [fp, #0x60] // [V02 arg2] + str q16, [fp, #0x10] // [TEMP_01] + ldr q16, [fp, #0x50] // [TEMP_05] + ldr q17, [fp, #0x40] // [TEMP_04] + ldr q18, [fp, #0x30] // [TEMP_03] + ldr q19, [fp, #0x20] // [TEMP_02] + ldr q20, [fp, #0x10] // [TEMP_01] + tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b + mov v0.16b, v16.16b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M246_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end E4 end

+44 (+73.33%) : 84160.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector641[byte]):System.Runtime.Intrinsics.Vector64`1[byte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

libraries.crossgen2.linux.arm64.checked.mch

+0 (0.00%) : 6809.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x24] // [V01 loc0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

+0 (0.00%) : 6810.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)

@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M28342_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 6814.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0] - ; gcrRegs +[x1] - ldr w1, [x1, #0x08] - ; gcrRegs -[x1] - cbz w1, G_M30483_IG03 - ldr w1, [fp, #0x24] // [V01 loc0] - cmn w1, #1 - cset x1, ne - str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0] + ; gcrRegs +[x0] + ldr w0, [x0, #0x08] + ; gcrRegs -[x0] + cbz w0, G_M30483_IG03 + ldr w0, [fp, #0x24] // [V01 loc0] + cmn w0, #1 + cset x0, ne + str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04 ;; size=68 bbWeight=1 PerfScore 22.50 G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1 + str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50 G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x14] // [V04 tmp1] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

+0 (0.00%) : 6815.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M50957_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 192180.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1] - cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1] + cmp w0, w1
beq G_M16092_IG04 mov w0, wzr ;; size=60 bbWeight=1 PerfScore 16.00

libraries.pmi.linux.arm64.checked.mch

+0 (0.00%) : 72720.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

@@ -1350,21 +1350,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcr arg pop 0 str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ; gcrRegs +[x2] - cbz x2, G_M12913_IG05 - ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ldr x2, [x2, #0x08] - str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + cbz x0, G_M12913_IG05 + ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + ldr x0, [x0, #0x08] + str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50 G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2] - ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ; gcrRegs +[x0] + ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1] ; gcrRegs +[x1] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38354,16 +38355,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38389,21 +38392,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410] ; gcrRegs +[x3] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x5, #0xD1FFAB1E // code for <unknown method> @@ -38476,16 +38481,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xF8] // [V1272 tmp847]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38911,9 +38918,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0xB0] // [V1281 tmp856] ldr x2, [fp, #0xB0] // [V1281 tmp856] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39054,9 +39063,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x90] // [V1285 tmp860] ldr x2, [fp, #0x90] // [V1285 tmp860] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39257,9 +39268,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x70] // [V1289 tmp864] ldr x2, [fp, #0x70] // [V1289 tmp864] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39400,9 +39413,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x50] // [V1293 tmp868] ldr x2, [fp, #0x50] // [V1293 tmp868] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0

libraries_tests.run.linux.arm64.Release.mch

-20 (-5.49%) : 186747.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)

@@ -5,40 +5,40 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action> -; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> -; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action> +; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> +; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> -; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg" -; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> +; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg" +; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym] - str x0, [fp, #0x48] - str x0, [fp, #0x40] // [V00 TypeCtx] - str x1, [fp, #0x38] // [V01 arg0] - ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym] + str x0, [fp, #0x50] + str x0, [fp, #0x48] // [V00 TypeCtx] + str x1, [fp, #0x40] // [V01 arg0] + ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00 G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1] ldr x1, [x1, #0x18] ; gcrRegs -[x1] @@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=20 bbWeight=1 PerfScore 11.00 G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] cbnz x0, G_M19780_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x48] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3] - ldr x0, [fp, #0x10] // [V07 tmp3] - ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3] + ldr x0, [fp, #0x18] // [V07 tmp3] + ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=52 bbWeight=0 PerfScore 0.00 G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18] - ldr x1, [x1, #-0x10] - str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08] + str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION ; gcrRegs -[x1] ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00 G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1] - ldr x0, [fp, #0x28] // [V03 loc1] - str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1] + ldr x0, [fp, #0x30] // [V03 loc1] + str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04] ; gcrRegs -[x0] ;; size=40 bbWeight=1 PerfScore 16.50 G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -193,10 +189,24 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! E4 end E4 end
+ +Unwind Info: + >> Start offset : 0xd1ffab1e (not in unwind data) + >> End offset : 0xd1ffab1e (not in unwind data) + Code Words : 1 + Epilog Count : 0 + E bit : 1 + X bit : 0 + Vers : 0 + Function Length : 12 (0x0000c) Actual length = 48 (0x000030) + --- One epilog, unwind codes at 0 + ---- Unwind codes ---- + ---- Epilog start at index 0 ---- + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end
E4 end ...

-16 (-4.12%) : 203952.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05 b G_M22620_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

-16 (-4.12%) : 212008.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05 b G_M57052_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

+12 (+12.50%) : 496476.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)

@@ -24,28 +24,31 @@ G_M34860_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str x0, [fp, #0x38] // [V00 this] ;; size=28 bbWeight=1 PerfScore 6.50 G_M34860_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1] + fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2] - ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2] + fmov d0, d16 + ldr d16, [fp, #0x20] // [V03 arg3] + fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0] movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M34860_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
; ============================================================ Unwind Info: @@ -56,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+14.29%) : 419326.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 419368.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Instrumented Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)

librariestestsnotieredcompilation.run.linux.arm64.Release.mch

-8 (-1.57%) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)

@@ -7,39 +7,38 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init -; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init -; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init +; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init +; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure" -; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init -; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init -; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" -; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure" -; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure" +; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init +; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init +; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure" +; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure" +; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" +; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20] - str wzr, [x9, #0x28] - str x0, [fp, #0x70] // [V00 this] - str x1, [fp, #0x60] // [V01 arg1] - str x2, [fp, #0x68] // [V01 arg1+0x08] - str x3, [fp, #0x50] // [V02 arg2] - str x4, [fp, #0x58] // [V02 arg2+0x08] - ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20] + str x0, [fp, #0x78] // [V00 this] + str x1, [fp, #0x68] // [V01 arg1] + str x2, [fp, #0x70] // [V01 arg1+0x08] + str x3, [fp, #0x58] // [V02 arg2] + str x4, [fp, #0x60] // [V02 arg2+0x08] + ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1] - ldr w1, [fp, #0x40] // [V07 tmp1] - uxtb w1, w1 - str w1, [fp, #0x4C] // [V03 loc0] - ldr w1, [fp, #0x4C] // [V03 loc0] - cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1] + ldr w0, [fp, #0x48] // [V07 tmp1] + uxtb w0, w0 + str w0, [fp, #0x54] // [V03 loc0] + ldr w0, [fp, #0x54] // [V03 loc0] + cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11 ;; size=72 bbWeight=1 PerfScore 20.50 G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08] - ; gcrRegs +[x1] - cbz x1, G_M13185_IG06 - ldr x1, [fp, #0x58] // [V02 arg2+0x08] - cmp x1, #0 - cset x1, eq - ; gcrRegs -[x1] - str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08] + ; gcrRegs +[x0] + cbz x0, G_M13185_IG06 + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + cmp x0, #0 + cset x0, eq + ; gcrRegs -[x0] + str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07 ;; size=28 bbWeight=1 PerfScore 8.00 G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1 + str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50 G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2] - uxtb w1, w1 - str w1, [fp, #0x44] // [V05 loc2] - ldr w1, [fp, #0x44] // [V05 loc2] - cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2] + uxtb w0, w0 + str w0, [fp, #0x4C] // [V05 loc2] + ldr w0, [fp, #0x4C] // [V05 loc2] + cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01] + add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
cset x0, eq ; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19] - ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1] + ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3] - ldr x0, [fp, #0x58] // [V02 arg2+0x08] - ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3] + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4] - ldr x0, [fp, #0x30] // [V09 tmp3] - ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4] + ldr x0, [fp, #0x38] // [V09 tmp3] + ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1] cmp x0, x1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method> ; gcrRegs -[x1] movk x1, #0xD1FFAB1E LSL #16 @@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6] - ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6] + ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7] - ldr w0, [fp, #0x20] // [V12 tmp6] - ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7] + ldr w0, [fp, #0x28] // [V12 tmp6] + ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8] - ldr w0, [fp, #0x18] // [V14 tmp8] - str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8] + ldr w0, [fp, #0x20] // [V14 tmp8] + str w0, [fp, #0x2C] // [V11 tmp5]
...

-4 (-1.15%) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -5,75 +5,74 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> -; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init -; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] must-init
+; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x40] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> +; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init +; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] must-init
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call" -; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "non-inline candidate call" -; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x14] do-not-enreg[] "non-inline candidate call"
+; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "non-inline candidate call" +; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "non-inline candidate call" +; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call" +; TEMP_01 int -> [fp+0x18]
;
-; Lcl frame size = 56
+; Lcl frame size = 64
G_M13983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x50]!
- str x19, [sp, #0x48]
mov fp, sp
- str wzr, [fp, #0x24] // [V02 loc0] - str wzr, [fp, #0x20] // [V03 loc1] - str x0, [fp, #0x38] // [V00 arg0] - str x1, [fp, #0x40] // [V00 arg0+0x08] - str x2, [fp, #0x28] // [V01 arg1] - str x3, [fp, #0x30] // [V01 arg1+0x08] - ;; size=36 bbWeight=1 PerfScore 8.50
+ str wzr, [fp, #0x2C] // [V02 loc0] + str wzr, [fp, #0x28] // [V03 loc1] + str x0, [fp, #0x40] // [V00 arg0] + str x1, [fp, #0x48] // [V00 arg0+0x08] + str x2, [fp, #0x30] // [V01 arg1] + str x3, [fp, #0x38] // [V01 arg1+0x08] + ;; size=32 bbWeight=1 PerfScore 7.50
G_M13983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1
- str w0, [fp, #0x1C] // [V05 tmp1] - add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x24] // [V05 tmp1] + add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x1C] // [V05 tmp1]
+ ldr w1, [fp, #0x24] // [V05 tmp1]
cmp w0, w1 beq G_M13983_IG04 mov w0, wzr ;; size=68 bbWeight=1 PerfScore 17.00 G_M13983_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M13983_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1
- str w0, [fp, #0x18] // [V06 tmp2] - add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x20] // [V06 tmp2] + add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x18] // [V06 tmp2]
+ ldr w1, [fp, #0x20] // [V06 tmp2]
eor w0, w0, w1
- str w0, [fp, #0x24] // [V02 loc0] - str wzr, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x2C] // [V02 loc0] + str wzr, [fp, #0x28] // [V03 loc1]
b G_M13983_IG06 ;; size=72 bbWeight=1 PerfScore 18.50 G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, fp, #56 // [V00 arg0] - ldr w1, [fp, #0x20] // [V03 loc1]
+ add x0, fp, #64 // [V00 arg0] + ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 @@ -82,10 +81,11 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs +[x0] ldrb w0, [x0] ; byrRegs -[x0]
- str w0, [fp, #0x14] // [V07 tmp3] - ldr w19, [fp, #0x24] // [V02 loc0] - add x0, fp, #40 // [V01 arg1] - ldr w1, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x1C] // [V07 tmp3] + ldr w0, [fp, #0x2C] // [V02 loc0] + str w0, [fp, #0x18] // [TEMP_01] + add x0, fp, #48 // [V01 arg1] + ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 @@ -94,46 +94,46 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs +[x0] ldrb w0, [x0] ; byrRegs -[x0]
- ldr w1, [fp, #0x14] // [V07 tmp3]
+ ldr w1, [fp, #0x1C] // [V07 tmp3]
eor w0, w0, w1
- orr w0, w19, w0 - str w0, [fp, #0x24] // [V02 loc0] - ldr w0, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x18] // [TEMP_01] + orr w0, w1, w0 + str w0, [fp, #0x2C] // [V02 loc0] + ldr w0, [fp, #0x28] // [V03 loc1]
add w0, w0, #1
- str w0, [fp, #0x20] // [V03 loc1] - ;; size=100 bbWeight=1 PerfScore 32.50
+ str w0, [fp, #0x28] // [V03 loc1] + ;; size=108 bbWeight=1 PerfScore 35.50
G_M13983_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
cmp w0, w1 bgt G_M13983_IG05
- ldr w0, [fp, #0x24] // [V02 loc0]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
cmp w0, #0 cset x0, eq ;; size=48 bbWeight=1 PerfScore 12.50 G_M13983_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 348, prolog size 20, PerfScore 97.00, instruction count 87, allocated bytes for code 348 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 344, prolog size 16, PerfScore 95.00, instruction count 86, allocated bytes for code 344 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 87 (0x00057) Actual length = 348 (0x00015c)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -144,10 +144,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 09 save_reg X#0 Z#9 (0x09); str x19, [sp, #72]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! E4 end E4 end
- E4 end - E4 end

+0 (0.00%) : 2033.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:.cctor() (MinOpts)

@@ -150,13 +150,13 @@ G_M31492_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref bl CORINFO_HELP_GETGENERICS_GCSTATIC_BASE ; byrRegs +[x0] ; gcr arg pop 0
- ldr x1, [x0] - ; gcrRegs +[x1] - str x1, [fp, #0x18] // [V08 tmp7] - ldr x1, [fp, #0x18] // [V08 tmp7] - ldr x0, [fp, #0x28] // [V06 tmp5]
+ ldr x0, [x0]
; gcrRegs +[x0] ; byrRegs -[x0]
+ str x0, [fp, #0x18] // [V08 tmp7] + ldr x1, [fp, #0x18] // [V08 tmp7] + ; gcrRegs +[x1] + ldr x0, [fp, #0x28] // [V06 tmp5]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32

+4 (+2.50%) : 292624.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|1_0(byref,byref,int,int) (MinOpts)

@@ -36,25 +36,26 @@ G_M37733_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M37733_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + adds w0, w0, #1
bvc G_M37733_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 8.00 G_M37733_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M37733_IG06 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 6.50 G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -76,13 +77,13 @@ G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M37733_IG07: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
; ============================================================ Unwind Info: @@ -93,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 287185.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|35_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M32397_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M32397_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M32397_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M32397_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 279999.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|83_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M960_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M960_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M960_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M960_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.linux.arm64.checked.mch

+0 (0.00%) : 1329.dasm - BenchmarkDotNet.Autogenerated.Runnable33:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M19025_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

+0 (0.00%) : 1513.dasm - BenchmarkDotNet.Autogenerated.Runnable5:ForDisassemblyDiagnoser_():System.Numerics.Vector`1[float]:this (MinOpts)

@@ -39,8 +39,8 @@ G_M16961_IG03: ; bbWeight=1, epilog, nogc, extend ret lr ;; size=8 bbWeight=1 PerfScore 2.00 G_M16961_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- movi v0.4s, #0 - str q0, [fp, #0x10] // [V01 loc0]
+ movi v16.4s, #0 + str q16, [fp, #0x10] // [V01 loc0]
ldr q0, [fp, #0x10] // [V01 loc0] ;; size=12 bbWeight=1 PerfScore 3.50 G_M16961_IG05: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 1605.dasm - BenchmarkDotNet.Autogenerated.Runnable29:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M43802_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

+0 (0.00%) : 1800.dasm - BenchmarkDotNet.Autogenerated.Runnable26:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M4149_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

+0 (0.00%) : 1872.dasm - BenchmarkDotNet.Autogenerated.Runnable37:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M64469_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

+0 (0.00%) : 2220.dasm - BenchmarkDotNet.Autogenerated.Runnable35:TrickTheJIT_():this (MinOpts)

@@ -45,14 +45,14 @@ G_M17559_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr x3, [x3, #0x30] blr x3 ; gcrRegs -[x0]
- ldr x8, [fp, #0xD8] // [V00 this] - ; gcrRegs +[x8] - str w0, [x8, #0x38]
+ ldr x1, [fp, #0xD8] // [V00 this] + ; gcrRegs +[x1] + str w0, [x1, #0x38]
add x8, fp, #16 // [V03 tmp2]
- ; gcrRegs -[x8]
ldr x0, [fp, #0xD8] // [V00 this] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method>
+ ; gcrRegs -[x1]
movk x1, #0xD1FFAB1E LSL #16 movk x1, #0xD1FFAB1E LSL #32 ldr x1, [x1]

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.arm64.checked.mch 252 0 0 252 -0 +0
benchmarks.run_pgo.linux.arm64.checked.mch 21,672 242 590 20,840 -1,836 +3,328
benchmarks.run_tiered.linux.arm64.checked.mch 20,613 233 425 19,955 -1,768 +2,388
coreclr_tests.run.linux.arm64.checked.mch 147,716 4,497 7,026 136,193 -36,344 +179,820
libraries.crossgen2.linux.arm64.checked.mch 5 0 0 5 -0 +0
libraries.pmi.linux.arm64.checked.mch 1 0 0 1 -0 +0
libraries_tests.run.linux.arm64.Release.mch 187,842 538 1,421 185,883 -6,496 +8,432
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 11,768 2 30 11,736 -12 +120
realworld.run.linux.arm64.checked.mch 26 0 0 26 -0 +0
smoke_tests.nativeaot.linux.arm64.checked.mch 0 0 0 0 -0 +0
389,895 5,512 9,492 374,891 -46,456 +194,088

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm64.checked.mch 34,613 3,148 31,465 239 (0.69%) 239 (0.69%)
benchmarks.run_pgo.linux.arm64.checked.mch 150,972 59,296 91,676 132 (0.09%) 132 (0.09%)
benchmarks.run_tiered.linux.arm64.checked.mch 71,125 53,989 17,136 82 (0.12%) 82 (0.12%)
coreclr_tests.run.linux.arm64.checked.mch 626,766 383,796 242,970 455 (0.07%) 455 (0.07%)
libraries.crossgen2.linux.arm64.checked.mch 234,183 15 234,168 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm64.checked.mch 293,130 6 293,124 1,913 (0.65%) 1,913 (0.65%)
libraries_tests.run.linux.arm64.Release.mch 733,486 489,338 244,148 1,326 (0.18%) 1,326 (0.18%)
librariestestsnotieredcompilation.run.linux.arm64.Release.mch 302,704 21,560 281,144 2,093 (0.69%) 2,093 (0.69%)
realworld.run.linux.arm64.checked.mch 32,765 85 32,680 338 (1.02%) 338 (1.02%)
smoke_tests.nativeaot.linux.arm64.checked.mch 19,027 7 19,020 2 (0.01%) 2 (0.01%)
2,498,771 1,011,240 1,487,531 6,580 (0.26%) 6,580 (0.26%)

jit-analyze output

benchmarks.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15908516 (overridden on cmd)
Total bytes of diff: 15908516 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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


benchmarks.run_pgo.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 78672796 (overridden on cmd)
Total bytes of diff: 78674288 (overridden on cmd)
Total bytes of delta: 1492 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 2651.dasm (36.19 % of base)
         152 : 31244.dasm (33.63 % of base)
          68 : 11103.dasm (39.53 % of base)
          48 : 48036.dasm (1.89 % of base)
          48 : 38272.dasm (2.24 % of base)
          40 : 139653.dasm (1.60 % of base)
          40 : 139667.dasm (1.60 % of base)
          24 : 31913.dasm (0.32 % of base)
          24 : 36040.dasm (1.37 % of base)
          24 : 36998.dasm (0.32 % of base)
          16 : 48531.dasm (1.01 % of base)
          16 : 5460.dasm (3.54 % of base)
          16 : 147807.dasm (1.80 % of base)
          16 : 140069.dasm (2.26 % of base)
          16 : 20329.dasm (2.09 % of base)
          16 : 21356.dasm (1.06 % of base)
          16 : 29384.dasm (4.94 % of base)
          16 : 60688.dasm (1.09 % of base)
          16 : 66697.dasm (0.42 % of base)
          12 : 22155.dasm (1.21 % of base)

Top file improvements (bytes):
         -24 : 22522.dasm (-1.16 % of base)
         -16 : 76242.dasm (-0.93 % of base)
         -16 : 11967.dasm (-0.56 % of base)
         -16 : 5313.dasm (-0.15 % of base)
         -16 : 92985.dasm (-2.13 % of base)
         -16 : 29182.dasm (-0.29 % of base)
         -16 : 31941.dasm (-0.29 % of base)
         -12 : 14864.dasm (-1.45 % of base)
         -12 : 93964.dasm (-2.83 % of base)
         -12 : 94375.dasm (-2.05 % of base)
         -12 : 132267.dasm (-0.13 % of base)
         -12 : 15246.dasm (-0.13 % of base)
         -12 : 18384.dasm (-3.66 % of base)
         -12 : 26063.dasm (-1.07 % of base)
          -8 : 36005.dasm (-7.14 % of base)
          -8 : 40993.dasm (-7.14 % of base)
          -8 : 44057.dasm (-7.14 % of base)
          -8 : 51317.dasm (-7.14 % of base)
          -8 : 95873.dasm (-7.14 % of base)
          -8 : 113829.dasm (-7.14 % of base)

75 total files with Code Size differences (39 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (33.63 % of base) : 31244.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
         152 (36.19 % of base) : 2651.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 11103.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          48 (1.89 % of base) : 48036.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Instrumented Tier0)
          48 (2.24 % of base) : 38272.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
          40 (1.60 % of base) : 139653.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          40 (1.60 % of base) : 139667.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          24 (0.32 % of base) : 36998.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (0.32 % of base) : 31913.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (1.37 % of base) : 36040.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.42 % of base) : 66697.dasm - Neural:read_data_file():this (Instrumented Tier0)
          16 (1.09 % of base) : 60688.dasm - NeuralJagged:Init() (Instrumented Tier0)
          16 (1.01 % of base) : 48531.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
          16 (1.06 % of base) : 21356.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 29384.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (2.09 % of base) : 20329.dasm - System.Security.Cryptography.TripleDesImplementation:GetAlgorithm(int,int):long (Tier0)
          16 (1.80 % of base) : 147807.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
          16 (2.26 % of base) : 140069.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
          16 (3.54 % of base) : 5460.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.21 % of base) : 22155.dasm - Interop+Crypto:CheckX509IpAddress(Microsoft.Win32.SafeHandles.SafeX509Handle,ubyte[],int,System.String,int):int (Tier0)

Top method improvements (bytes):
         -24 (-1.16 % of base) : 22522.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
         -16 (-0.29 % of base) : 29182.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.29 % of base) : 31941.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.93 % of base) : 76242.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.56 % of base) : 11967.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
         -16 (-0.15 % of base) : 5313.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
         -16 (-2.13 % of base) : 92985.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.05 % of base) : 94375.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
         -12 (-2.83 % of base) : 93964.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 18384.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 26063.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 14864.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 132267.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Instrumented Tier0)
         -12 (-0.13 % of base) : 15246.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-5.71 % of base) : 11237.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:EqualsAllBenchmark():ubyte:this (Tier0)
          -8 (-7.14 % of base) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-5.71 % of base) : 11721.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
          -8 (-7.14 % of base) : 27669.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 40993.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:MinBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 40521.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 11103.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 2651.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
         152 (33.63 % of base) : 31244.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
           4 (11.11 % of base) : 19329.dasm - System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (10.00 % of base) : 2230.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
           4 (10.00 % of base) : 1280.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 7054.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 55879.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 10394.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[uint,ushort](System.Numerics.Vector`1[uint],System.Numerics.Vector`1[uint]):System.Numerics.Vector`1[ushort] (Tier0)
           4 (8.33 % of base) : 29102.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 45191.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 80355.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
           4 (6.25 % of base) : 76138.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 110945.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 30642.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 57934.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 124341.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 29384.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 30462.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 5167.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 11573.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:DivisionOperatorBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 27669.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 40993.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:MinBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 40521.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 18785.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AddBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
          -8 (-7.14 % of base) : 36005.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 113829.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 134081.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 147001.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 44057.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 51317.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 95873.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 114441.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 124017.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 22993.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MinBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 128737.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 142057.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 57017.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:BitwiseAndBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
          -8 (-7.14 % of base) : 53689.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 26657.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)


benchmarks.run_tiered.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 29592944 (overridden on cmd)
Total bytes of diff: 29593564 (overridden on cmd)
Total bytes of delta: 620 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 2420.dasm (36.19 % of base)
          68 : 13823.dasm (39.53 % of base)
          48 : 24446.dasm (2.24 % of base)
          40 : 69146.dasm (1.85 % of base)
          24 : 20477.dasm (0.35 % of base)
          24 : 24845.dasm (0.35 % of base)
          24 : 24191.dasm (1.37 % of base)
          16 : 15543.dasm (2.09 % of base)
          16 : 22341.dasm (4.94 % of base)
          16 : 34905.dasm (1.14 % of base)
          16 : 4922.dasm (3.54 % of base)
          16 : 69152.dasm (2.48 % of base)
          16 : 69653.dasm (1.94 % of base)
          16 : 16326.dasm (1.06 % of base)
          16 : 35819.dasm (0.43 % of base)
          12 : 17227.dasm (1.21 % of base)
          12 : 24487.dasm (0.86 % of base)
          12 : 52336.dasm (0.71 % of base)
          12 : 1176.dasm (0.50 % of base)
          12 : 16593.dasm (1.05 % of base)

Top file improvements (bytes):
         -24 : 17551.dasm (-1.34 % of base)
         -20 : 6660.dasm (-1.37 % of base)
         -16 : 19883.dasm (-0.33 % of base)
         -16 : 4801.dasm (-0.19 % of base)
         -16 : 49583.dasm (-2.13 % of base)
         -16 : 10989.dasm (-0.62 % of base)
         -12 : 11600.dasm (-1.45 % of base)
         -12 : 11950.dasm (-0.13 % of base)
         -12 : 50288.dasm (-2.83 % of base)
         -12 : 8162.dasm (-3.66 % of base)
         -12 : 21791.dasm (-1.07 % of base)
          -8 : 18338.dasm (-7.14 % of base)
          -8 : 21153.dasm (-7.14 % of base)
          -8 : 21173.dasm (-6.67 % of base)
          -8 : 22345.dasm (-7.14 % of base)
          -8 : 24849.dasm (-5.71 % of base)
          -8 : 25826.dasm (-7.14 % of base)
          -8 : 29045.dasm (-7.14 % of base)
          -8 : 31897.dasm (-7.14 % of base)
          -8 : 5718.dasm (-7.14 % of base)

73 total files with Code Size differences (36 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (36.19 % of base) : 2420.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 13823.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          48 (2.24 % of base) : 24446.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
          40 (1.85 % of base) : 69146.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
          24 (0.35 % of base) : 24845.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
          24 (0.35 % of base) : 20477.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
          24 (1.37 % of base) : 24191.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.43 % of base) : 35819.dasm - Neural:read_data_file():this (Tier0)
          16 (1.14 % of base) : 34905.dasm - NeuralJagged:Init() (Tier0)
          16 (1.06 % of base) : 16326.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 22341.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (2.09 % of base) : 15543.dasm - System.Security.Cryptography.TripleDesImplementation:GetAlgorithm(int,int):long (Tier0)
          16 (1.94 % of base) : 69653.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
          16 (2.48 % of base) : 69152.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
          16 (3.54 % of base) : 4922.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.05 % of base) : 16593.dasm - Interop+Crypto:BioNewFile(System.String,System.String):Microsoft.Win32.SafeHandles.SafeBioHandle (Tier0)
          12 (1.21 % of base) : 17227.dasm - Interop+Crypto:CheckX509IpAddress(Microsoft.Win32.SafeHandles.SafeX509Handle,ubyte[],int,System.String,int):int (Tier0)
          12 (0.86 % of base) : 24487.dasm - Interop+Crypto:EcKeyCreateByKeyParameters(byref,System.String,ubyte[],int,ubyte[],int,ubyte[],int):int (Tier0)
          12 (0.71 % of base) : 52336.dasm - Interop+Sys:ForkAndExecProcess(System.String,ulong,ulong,System.String,int,int,int,int,uint,uint,ulong,int,byref,byref,byref,byref):int (Tier0)
          12 (0.50 % of base) : 1176.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)

Top method improvements (bytes):
         -24 (-1.34 % of base) : 17551.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
         -20 (-1.37 % of base) : 6660.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
         -16 (-0.33 % of base) : 19883.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
         -16 (-0.62 % of base) : 10989.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
         -16 (-0.19 % of base) : 4801.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
         -16 (-2.13 % of base) : 49583.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.83 % of base) : 50288.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 8162.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 21791.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 11600.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 11950.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-7.14 % of base) : 27953.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 21230.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 26809.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 5718.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:XorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 22746.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 22345.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AndNotBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
          -8 (-7.14 % of base) : 39313.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-5.71 % of base) : 21329.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanAnyBenchmark():ubyte:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 13823.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 2420.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
           4 (11.11 % of base) : 10507.dasm - System.Runtime.Intrinsics.Vector128:Create[byte](System.Runtime.Intrinsics.Vector64`1[byte],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (10.00 % of base) : 1152.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 12483.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 33055.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 15049.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[uint,ushort](System.Numerics.Vector`1[uint],System.Numerics.Vector`1[uint]):System.Numerics.Vector`1[ushort] (Tier0)
           4 (8.33 % of base) : 19805.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 28523.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 42733.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 57950.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 19026.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 33071.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 61210.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 22341.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 18846.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 4687.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           4 (4.76 % of base) : 59411.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 62538.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 37602.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SumBenchmark():float:this (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 27953.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 21230.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:MaxBenchmark():System.Numerics.Vector`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 26809.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 21053.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:GreaterThanOrEqualBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 5718.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:XorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 22746.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 22345.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:AndNotBenchmark():System.Numerics.Vector`1[ulong]:this (Tier0)
          -8 (-7.14 % of base) : 39313.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 68101.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 27217.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 29045.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 58441.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 31921.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 64285.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 18338.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
          -8 (-7.14 % of base) : 32349.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 25826.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 31897.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
          -8 (-7.14 % of base) : 18337.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
          -8 (-7.14 % of base) : 21153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)


coreclr_tests.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 508895360 (overridden on cmd)
Total bytes of diff: 509038836 (overridden on cmd)
Total bytes of delta: 143476 (0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         860 : 7063.dasm (1.98 % of base)
         860 : 7075.dasm (1.97 % of base)
         860 : 7088.dasm (2.11 % of base)
         860 : 7018.dasm (2.11 % of base)
         860 : 7073.dasm (1.99 % of base)
         860 : 7079.dasm (2.09 % of base)
         860 : 7116.dasm (2.11 % of base)
         860 : 6998.dasm (1.98 % of base)
         860 : 7057.dasm (2.13 % of base)
         860 : 7059.dasm (1.83 % of base)
         860 : 7105.dasm (1.97 % of base)
         860 : 7109.dasm (2.10 % of base)
         808 : 284592.dasm (0.60 % of base)
         784 : 284722.dasm (0.59 % of base)
         784 : 286435.dasm (0.59 % of base)
         784 : 286487.dasm (0.64 % of base)
         756 : 295162.dasm (0.73 % of base)
         720 : 294004.dasm (0.68 % of base)
         672 : 294174.dasm (0.64 % of base)
         672 : 295185.dasm (0.69 % of base)

Top file improvements (bytes):
        -220 : 162861.dasm (-8.63 % of base)
        -220 : 162911.dasm (-8.63 % of base)
        -204 : 162871.dasm (-11.62 % of base)
        -204 : 162901.dasm (-11.62 % of base)
        -204 : 162921.dasm (-11.62 % of base)
        -204 : 201420.dasm (-15.41 % of base)
        -204 : 201452.dasm (-15.41 % of base)
        -204 : 201508.dasm (-15.41 % of base)
        -200 : 201409.dasm (-5.26 % of base)
        -200 : 201463.dasm (-5.26 % of base)
        -116 : 162479.dasm (-3.49 % of base)
        -116 : 162693.dasm (-3.49 % of base)
        -116 : 162710.dasm (-3.49 % of base)
        -116 : 162725.dasm (-3.49 % of base)
        -116 : 162735.dasm (-3.49 % of base)
        -116 : 162849.dasm (-8.73 % of base)
        -116 : 162881.dasm (-8.73 % of base)
        -116 : 162931.dasm (-8.73 % of base)
        -116 : 162489.dasm (-3.49 % of base)
        -116 : 162447.dasm (-3.49 % of base)

67 total files with Code Size differences (27 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         860 (1.98 % of base) : 6998.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 7018.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (2.13 % of base) : 7057.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (1.83 % of base) : 7059.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
         860 (1.98 % of base) : 7063.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.99 % of base) : 7073.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 7075.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 7088.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (2.09 % of base) : 7079.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 7105.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 7116.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         860 (2.10 % of base) : 7109.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         808 (0.60 % of base) : 284592.dasm - i4div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 284722.dasm - i8div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 286435.dasm - u4div:TestEntryPoint():int (MinOpts)
         784 (0.64 % of base) : 286487.dasm - u8div:TestEntryPoint():int (MinOpts)
         756 (0.73 % of base) : 295162.dasm - u4div:TestEntryPoint():int (Tier0)
         720 (0.68 % of base) : 294004.dasm - i4div:TestEntryPoint():int (Tier0)
         672 (0.64 % of base) : 294174.dasm - i8div:TestEntryPoint():int (Tier0)
         672 (0.69 % of base) : 295185.dasm - u8div:TestEntryPoint():int (Tier0)

Top method improvements (bytes):
        -220 (-8.63 % of base) : 162861.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 162911.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 201420.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 162871.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 201452.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 162901.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 162921.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 201508.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 201409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 201463.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
        -116 (-3.49 % of base) : 162447.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162489.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162479.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt167:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162693.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162735.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162710.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 162725.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-8.73 % of base) : 162849.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 162881.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 162931.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)

Top method regressions (percentages):
          52 (76.47 % of base) : 84212.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          52 (76.47 % of base) : 84186.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          52 (76.47 % of base) : 45988.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          52 (76.47 % of base) : 45961.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          44 (73.33 % of base) : 84160.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          44 (73.33 % of base) : 84135.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          44 (73.33 % of base) : 45934.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          44 (73.33 % of base) : 45896.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          36 (69.23 % of base) : 84110.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          36 (69.23 % of base) : 84086.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          36 (69.23 % of base) : 45863.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          36 (69.23 % of base) : 45835.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         184 (51.11 % of base) : 99764.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (51.11 % of base) : 99792.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 139079.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 139116.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 138834.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 138871.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
          52 (48.15 % of base) : 315289.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
         176 (47.31 % of base) : 99631.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)

Top method improvements (percentages):
        -204 (-15.41 % of base) : 201420.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 201452.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 201508.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 162871.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 162901.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 162921.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 162849.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 162881.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 162931.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 162861.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 162911.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -112 (-6.83 % of base) : 201441.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 201476.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 201497.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
          -8 (-6.67 % of base) : 317154.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
         -12 (-6.12 % of base) : 317628.dasm - Performance_2700:TestEntryPoint():int (Tier0)
        -200 (-5.26 % of base) : 201409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 201463.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
         -16 (-5.06 % of base) : 230911.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
         -96 (-4.54 % of base) : 162437.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunBasicScenario(int,ubyte):this (MinOpts)


libraries.crossgen2.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55781064 (overridden on cmd)
Total bytes of diff: 55781064 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries.pmi.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 74608176 (overridden on cmd)
Total bytes of diff: 74608176 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries_tests.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 383838152 (overridden on cmd)
Total bytes of diff: 383840088 (overridden on cmd)
Total bytes of delta: 1936 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         624 : 454496.dasm (3.07 % of base)
         128 : 498312.dasm (1.75 % of base)
         112 : 500001.dasm (1.70 % of base)
          88 : 500666.dasm (1.49 % of base)
          64 : 499970.dasm (1.27 % of base)
          64 : 501192.dasm (1.27 % of base)
          64 : 499781.dasm (1.27 % of base)
          64 : 501149.dasm (1.27 % of base)
          64 : 500020.dasm (1.27 % of base)
          52 : 501242.dasm (0.91 % of base)
          48 : 404698.dasm (1.89 % of base)
          48 : 116719.dasm (2.24 % of base)
          48 : 293582.dasm (1.07 % of base)
          40 : 499844.dasm (1.07 % of base)
          40 : 474014.dasm (1.98 % of base)
          32 : 501272.dasm (0.88 % of base)
          28 : 85749.dasm (3.07 % of base)
          24 : 117642.dasm (0.72 % of base)
          24 : 298586.dasm (3.41 % of base)
          24 : 368487.dasm (0.43 % of base)

Top file improvements (bytes):
         -72 : 475429.dasm (-3.83 % of base)
         -52 : 412052.dasm (-2.21 % of base)
         -44 : 100976.dasm (-1.50 % of base)
         -44 : 102435.dasm (-1.56 % of base)
         -44 : 139051.dasm (-1.75 % of base)
         -44 : 102361.dasm (-1.59 % of base)
         -44 : 102397.dasm (-1.56 % of base)
         -44 : 102282.dasm (-1.56 % of base)
         -44 : 102368.dasm (-1.62 % of base)
         -44 : 201546.dasm (-1.44 % of base)
         -44 : 102356.dasm (-1.56 % of base)
         -44 : 102402.dasm (-1.56 % of base)
         -44 : 103381.dasm (-1.66 % of base)
         -44 : 122578.dasm (-1.56 % of base)
         -44 : 190889.dasm (-1.56 % of base)
         -44 : 209756.dasm (-1.56 % of base)
         -44 : 254622.dasm (-1.14 % of base)
         -44 : 61280.dasm (-1.56 % of base)
         -44 : 68407.dasm (-1.56 % of base)
         -40 : 2733.dasm (-1.31 % of base)

78 total files with Code Size differences (38 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         624 (3.07 % of base) : 454496.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
         128 (1.75 % of base) : 498312.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
         112 (1.70 % of base) : 500001.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
          88 (1.49 % of base) : 500666.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
          64 (1.27 % of base) : 500020.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
          64 (1.27 % of base) : 499781.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
          64 (1.27 % of base) : 499970.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
          64 (1.27 % of base) : 501149.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
          64 (1.27 % of base) : 501192.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
          52 (0.91 % of base) : 501242.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
          48 (1.07 % of base) : 293582.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
          48 (1.89 % of base) : 404698.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Instrumented Tier0)
          48 (2.24 % of base) : 116719.dasm - System.Security.Cryptography.AesImplementation:GetAlgorithm(int,int,int):long (Tier0)
          40 (1.07 % of base) : 499844.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
          40 (1.98 % of base) : 474014.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
          32 (0.88 % of base) : 501272.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
          28 (3.07 % of base) : 85749.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
          24 (0.72 % of base) : 117642.dasm - DryIoc.Factory:ApplyReuse(FastExpressionCompiler.LightExpression.Expression,DryIoc.Request):FastExpressionCompiler.LightExpression.Expression:this (Tier0)
          24 (3.41 % of base) : 298586.dasm - FsCheck.Random:stdNext(FsCheck.Random+StdGen):System.Tuple`2[int,FsCheck.Random+StdGen] (Tier0)
          24 (0.43 % of base) : 368487.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)

Top method improvements (bytes):
         -72 (-3.83 % of base) : 475429.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -52 (-2.21 % of base) : 412052.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
         -44 (-1.14 % of base) : 254622.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
         -44 (-1.56 % of base) : 209756.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.59 % of base) : 102361.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 102356.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 61280.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 68407.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 102282.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.50 % of base) : 100976.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.44 % of base) : 201546.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.75 % of base) : 139051.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
         -44 (-1.62 % of base) : 102368.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Decimal]:Equals(System.Decimal,Xunit.Sdk.CollectionTracker,System.Decimal,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.66 % of base) : 103381.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 122578.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 102397.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 102402.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 102435.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 190889.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -40 (-1.31 % of base) : 2733.dasm - Xunit.Assert:Equal[int](int,int,System.Collections.Generic.IEqualityComparer`1[int]) (Tier0)

Top method regressions (percentages):
           4 (14.29 % of base) : 419368.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
           4 (14.29 % of base) : 419326.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
          12 (12.50 % of base) : 496476.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 496657.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 496358.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
          12 (11.54 % of base) : 495649.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
          12 (11.54 % of base) : 495714.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
           4 (9.09 % of base) : 425247.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
           4 (9.09 % of base) : 425053.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (9.09 % of base) : 413486.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
           4 (9.09 % of base) : 413085.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ubyte](System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (9.09 % of base) : 427489.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[double](System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[double] (Tier0)
           4 (9.09 % of base) : 414799.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
           4 (9.09 % of base) : 414559.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
           4 (8.33 % of base) : 352010.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Instrumented Tier0)
           4 (8.33 % of base) : 346481.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
           4 (8.33 % of base) : 414427.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
           4 (8.33 % of base) : 414068.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Tier0)
           4 (6.67 % of base) : 496565.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Vector64DoubleSumTest():this (Tier0)
           4 (6.25 % of base) : 142364.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)

Top method improvements (percentages):
         -20 (-5.49 % of base) : 186747.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
         -16 (-4.12 % of base) : 203952.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
         -16 (-4.12 % of base) : 212008.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
         -72 (-3.83 % of base) : 475429.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -16 (-3.77 % of base) : 190303.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
         -12 (-3.66 % of base) : 77408.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
          -8 (-3.64 % of base) : 72193.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
          -4 (-3.33 % of base) : 726471.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
         -12 (-2.83 % of base) : 19842.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
          -4 (-2.63 % of base) : 119864.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
         -12 (-2.54 % of base) : 206053.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Instrumented Tier0)
         -12 (-2.54 % of base) : 524048.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.Span`1[ushort],System.AssertExtensions+AssertThrowsAction`1[ushort]):System.__Canon (Instrumented Tier0)
          -4 (-2.50 % of base) : 256073.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
          -8 (-2.38 % of base) : 36626.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
          -4 (-2.38 % of base) : 252580.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
         -20 (-2.29 % of base) : 231415.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
         -52 (-2.21 % of base) : 412052.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
         -12 (-2.05 % of base) : 38970.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
          -8 (-2.04 % of base) : 146757.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock:ShortenBranches(byref):this (Tier0)
         -20 (-2.04 % of base) : 231510.dasm - System.ComponentModel.ReflectPropertyDescriptor:ResetValue(System.Object):this (Tier0)


librariestestsnotieredcompilation.run.linux.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 163129488 (overridden on cmd)
Total bytes of diff: 163129596 (overridden on cmd)
Total bytes of delta: 108 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           4 : 267660.dasm (2.38 % of base)
           4 : 267661.dasm (2.50 % of base)
           4 : 268104.dasm (2.38 % of base)
           4 : 268123.dasm (2.50 % of base)
           4 : 268167.dasm (2.50 % of base)
           4 : 268195.dasm (2.50 % of base)
           4 : 268482.dasm (2.50 % of base)
           4 : 270432.dasm (2.50 % of base)
           4 : 270803.dasm (2.38 % of base)
           4 : 272101.dasm (2.50 % of base)
           4 : 274420.dasm (2.50 % of base)
           4 : 276424.dasm (2.50 % of base)
           4 : 276844.dasm (2.38 % of base)
           4 : 279200.dasm (2.38 % of base)
           4 : 279988.dasm (2.50 % of base)
           4 : 279999.dasm (2.86 % of base)
           4 : 286779.dasm (2.50 % of base)
           4 : 286788.dasm (2.38 % of base)
           4 : 287185.dasm (2.86 % of base)
           4 : 291259.dasm (2.50 % of base)

Top file improvements (bytes):
          -8 : 13258.dasm (-1.57 % of base)
          -4 : 154971.dasm (-1.15 % of base)

26 total files with Code Size differences (2 improved, 24 regressed), 37 unchanged.

Top method regressions (bytes):
           4 (2.50 % of base) : 292624.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 272101.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 274420.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 268167.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 292646.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 267661.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 292647.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.86 % of base) : 287185.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 286779.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 286788.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 268195.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 276424.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 267660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 268482.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 268104.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 276844.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 268123.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 291783.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 270432.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)

Top method improvements (bytes):
          -8 (-1.57 % of base) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
          -4 (-1.15 % of base) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method regressions (percentages):
           4 (2.86 % of base) : 287185.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.86 % of base) : 279999.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 292624.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 272101.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 274420.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 268167.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 292646.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 267661.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 286779.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 268195.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 276424.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 268482.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 268123.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291259.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 270432.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 279988.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 292647.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 286788.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 267660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 268104.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)

Top method improvements (percentages):
          -8 (-1.57 % of base) : 13258.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
          -4 (-1.15 % of base) : 154971.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)


realworld.run.linux.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15368676 (overridden on cmd)
Total bytes of diff: 15368676 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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



linux x64

Diffs are based on 2,505,340 contexts (977,766 MinOpts, 1,527,574 FullOpts).

MISSED contexts: 6,922 (0.28%)

Overall (-485,333 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 16,148,228 -5
benchmarks.run_pgo.linux.x64.checked.mch 70,126,965 -18,248
benchmarks.run_tiered.linux.x64.checked.mch 15,918,176 -11,382
coreclr_tests.run.linux.x64.checked.mch 402,653,853 -237,129
libraries.crossgen2.linux.x64.checked.mch 38,689,357 -4
libraries.pmi.linux.x64.checked.mch 58,919,195 -13
libraries_tests.run.linux.x64.Release.mch 339,819,743 -163,282
librariestestsnotieredcompilation.run.linux.x64.Release.mch 130,995,704 -54,244
realworld.run.linux.x64.checked.mch 12,767,093 -1,026
smoke_tests.nativeaot.linux.x64.checked.mch 4,192,959 +0

MinOpts (-485,333 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.linux.x64.checked.mch 264,173 -5
benchmarks.run_pgo.linux.x64.checked.mch 21,310,577 -18,248
benchmarks.run_tiered.linux.x64.checked.mch 12,281,125 -11,382
coreclr_tests.run.linux.x64.checked.mch 279,538,531 -237,129
libraries.crossgen2.linux.x64.checked.mch 1,202 -4
libraries.pmi.linux.x64.checked.mch 112,870 -13
libraries_tests.run.linux.x64.Release.mch 183,511,120 -163,282
librariestestsnotieredcompilation.run.linux.x64.Release.mch 10,658,448 -54,244
realworld.run.linux.x64.checked.mch 386,910 -1,026
smoke_tests.nativeaot.linux.x64.checked.mch 949 +0

Example diffs

benchmarks.run.linux.x64.checked.mch

-1 (-1.18%) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)

@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=22 bbWeight=1 PerfScore 5.00 G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08] - mov edi, dword ptr [rdi+0x40] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x0C], edi - mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - movzx rdi, byte ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08] + mov eax, dword ptr [rax+0x40] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x0C], eax + mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + movzx rax, byte ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x0C] @@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rdi] +[rax] nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp @@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================ Unwind Info:

-1 (-1.18%) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)

@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=22 bbWeight=1 PerfScore 5.00 G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08] - mov edi, dword ptr [rdi+0x40] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x0C], edi - mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - movzx rdi, byte ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08] + mov eax, dword ptr [rax+0x40] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x0C], eax + mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + movzx rax, byte ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x0C] @@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rdi] +[rax] nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp @@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================ Unwind Info:

-1 (-1.18%) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable153:ForDisassemblyDiagnoser_():ubyte[]:this (MinOpts)

@@ -22,19 +22,19 @@ G_M31513_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=22 bbWeight=1 PerfScore 5.00 G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x44], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x44], 11
jne SHORT G_M31513_IG04
- mov rdi, gword ptr [rbp-0x08] - mov edi, dword ptr [rdi+0x40] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x0C], edi - mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - movzx rdi, byte ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x10], edi
+ mov rax, gword ptr [rbp-0x08] + mov eax, dword ptr [rax+0x40] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x0C], eax + mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + movzx rax, byte ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x10], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x0C] @@ -42,7 +42,7 @@ G_M31513_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rdi] +[rax] nop
- ;; size=49 bbWeight=1 PerfScore 19.25
+ ;; size=48 bbWeight=1 PerfScore 19.25
G_M31513_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp @@ -59,7 +59,7 @@ G_M31513_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 85, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 85 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
+; Total bytes of code 84, prolog size 18, PerfScore 28.00, instruction count 28, allocated bytes for code 84 (MethodHash=0e7784e6) for method BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
; ============================================================ Unwind Info:

+0 (0.00%) : 42856.dasm - BenchmarkDotNet.Autogenerated.Runnable198:TrickTheJIT_():this (MinOpts)

@@ -40,12 +40,13 @@ G_M10145_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rax+0x48] call [rax+0x30]<unknown method> ; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov dword ptr [rcx+0x74], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi]
- mov dword ptr [rdi+0x74], eax - mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop ;; size=77 bbWeight=1 PerfScore 22.25 G_M10145_IG03: ; bbWeight=1, epilog, nogc, extend

+1 (+0.61%) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { lea rdi, [rbp-0x10] call [<unknown method>] mov dword ptr [rbp-0x24], eax
- xor edi, edi - mov dword ptr [rbp-0x28], edi - xor edi, edi - mov dword ptr [rbp-0x2C], edi
+ xor eax, eax + mov dword ptr [rbp-0x28], eax + xor eax, eax + mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.00 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov esi, dword ptr [rbp-0x2C] call [<unknown method>] ; byrRegs +[rax]
- movzx rdi, byte ptr [rax] - mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x2C] call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x34] sub ecx, eax
- or ecx, dword ptr [rbp-0x28] - mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x28] + mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C] inc eax mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C] - cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C] + cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x28], 0 @@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

+1 (+0.61%) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { lea rdi, [rbp-0x10] call [<unknown method>] mov dword ptr [rbp-0x24], eax
- xor edi, edi - mov dword ptr [rbp-0x28], edi - xor edi, edi - mov dword ptr [rbp-0x2C], edi
+ xor eax, eax + mov dword ptr [rbp-0x28], eax + xor eax, eax + mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.00 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov esi, dword ptr [rbp-0x2C] call [<unknown method>] ; byrRegs +[rax]
- movzx rdi, byte ptr [rax] - mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x2C] call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x34] sub ecx, eax
- or ecx, dword ptr [rbp-0x28] - mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x28] + mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C] inc eax mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C] - cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C] + cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x28], 0 @@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

benchmarks.run_pgo.linux.x64.checked.mch

-15 (-9.74%) : 27751.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)

@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10] - movzx r9, r9b - test r9d, r9d
+ mov eax, dword ptr [rbp+0x10] + movzx rax, al + test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d - mov dword ptr [rbp-0x30], r9d
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x30], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30] - mov dword ptr [rbp-0x2C], r9d - mov r9d, dword ptr [rbp-0x2C] - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9, r9 - ; gcrRegs +[r9] - mov gword ptr [rsp+0x10], r9 - xor r9d, r9d - ; gcrRegs -[r9] - mov dword ptr [rsp+0x18], r9d - mov r9d, dword ptr [rbp-0x28] - movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30] + mov dword ptr [rbp-0x2C], eax + mov eax, dword ptr [rbp-0x2C] + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor rax, rax + ; gcrRegs +[rax] + mov gword ptr [rsp+0x10], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x18], eax + mov eax, dword ptr [rbp-0x28] + movzx r9, al
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rsi, gword ptr [rbp-0x10] @@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rcx rdx rsi rdi] nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================ Unwind Info:

-6 (-8.96%) : 110171.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)

@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x14], edx ;; size=21 bbWeight=1 PerfScore 4.75 G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14] - movsx rdi, di - ror di, 8 - movzx rdi, di - movsx rdi, di - mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14] + cwde + ror ax, 8 + movzx rax, ax + cwde + mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10] ; byrRegs +[rdi] mov rsi, qword ptr [rbp-0x08] @@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
; ============================================================ Unwind Info:

-6 (-8.96%) : 4208.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)

@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x14], edx ;; size=21 bbWeight=1 PerfScore 4.75 G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14] - movsx rdi, di - ror di, 8 - movzx rdi, di - movsx rdi, di - mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14] + cwde + ror ax, 8 + movzx rax, ax + cwde + mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10] ; byrRegs +[rdi] mov rsi, qword ptr [rbp-0x08] @@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
; ============================================================ Unwind Info:

+12 (+21.43%) : 84839.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -5,43 +5,48 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this -; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this +; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi - mov bword ptr [rbp-0x18], rdi - mov qword ptr [rbp-0x20], rsi - ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax + mov qword ptr [rbp-0x20], rax + mov qword ptr [rbp-0x08], rsi + mov bword ptr [rbp-0x10], rdi + mov qword ptr [rbp-0x18], rsi + ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18] - ; byrRegs +[rdi] - mov rbx, gword ptr [rdi] - ; gcrRegs +[rbx] - mov rdi, qword ptr [rbp-0x20] - ; byrRegs -[rdi] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x20], rax + mov rdi, qword ptr [rbp-0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x20] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24 - pop rbx
+ add rsp, 32
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 89076.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)

@@ -5,43 +5,48 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this -; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this +; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi - mov bword ptr [rbp-0x18], rdi - mov qword ptr [rbp-0x20], rsi - ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax + mov qword ptr [rbp-0x20], rax + mov qword ptr [rbp-0x08], rsi + mov bword ptr [rbp-0x10], rdi + mov qword ptr [rbp-0x18], rsi + ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18] - ; byrRegs +[rdi] - mov rbx, gword ptr [rdi] - ; gcrRegs +[rbx] - mov rdi, qword ptr [rbp-0x20] - ; byrRegs -[rdi] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x20], rax + mov rdi, qword ptr [rbp-0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x20] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24 - pop rbx
+ add rsp, 32
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+16 (+21.62%) : 81439.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)

@@ -8,54 +8,58 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[] ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20] + xor eax, eax + mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x18], rax + mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08] - mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10] + ; gcrRegs -[rcx] + mov eax, ecx
; gcrRegs -[rax] add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08] - ; gcrRegs +[rdx] - mov rdi, gword ptr [rdx+0x08] - ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx] - idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08] + mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08] jae SHORT G_M41139_IG04 mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10] - ; gcrRegs -[rcx] - ; byrRegs +[rcx] - mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10] + ; byrRegs +[rax] + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax] + ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi] - ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================ Unwind Info: @@ -68,5 +72,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

benchmarks.run_tiered.linux.x64.checked.mch

-15 (-9.74%) : 19867.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)

@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10] - movzx r9, r9b - test r9d, r9d
+ mov eax, dword ptr [rbp+0x10] + movzx rax, al + test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d - mov dword ptr [rbp-0x30], r9d
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x30], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30] - mov dword ptr [rbp-0x2C], r9d - mov r9d, dword ptr [rbp-0x2C] - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9, r9 - ; gcrRegs +[r9] - mov gword ptr [rsp+0x10], r9 - xor r9d, r9d - ; gcrRegs -[r9] - mov dword ptr [rsp+0x18], r9d - mov r9d, dword ptr [rbp-0x28] - movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30] + mov dword ptr [rbp-0x2C], eax + mov eax, dword ptr [rbp-0x2C] + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor rax, rax + ; gcrRegs +[rax] + mov gword ptr [rsp+0x10], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x18], eax + mov eax, dword ptr [rbp-0x28] + movzx r9, al
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rsi, gword ptr [rbp-0x10] @@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rcx rdx rsi rdi] nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================ Unwind Info:

-6 (-8.96%) : 3945.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)

@@ -21,12 +21,12 @@ G_M42870_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x14], edx ;; size=21 bbWeight=1 PerfScore 4.75 G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x14] - movsx rdi, di - ror di, 8 - movzx rdi, di - movsx rdi, di - mov dword ptr [rbp-0x20], edi
+ mov eax, dword ptr [rbp-0x14] + cwde + ror ax, 8 + movzx rax, ax + cwde + mov dword ptr [rbp-0x20], eax
mov rdi, bword ptr [rbp-0x10] ; byrRegs +[rdi] mov rsi, qword ptr [rbp-0x08] @@ -34,14 +34,14 @@ G_M42870_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=40 bbWeight=1 PerfScore 9.00
+ ;; size=34 bbWeight=1 PerfScore 9.00
G_M42870_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 32 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 67, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
+; Total bytes of code 61, prolog size 10, PerfScore 15.50, instruction count 20, allocated bytes for code 61 (MethodHash=7e0e5889) for method System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
; ============================================================ Unwind Info:

-5 (-6.25%) : 8446.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)

@@ -20,14 +20,14 @@ G_M35089_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=17 bbWeight=1 PerfScore 3.75 G_M35089_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov edi, dword ptr [rbp-0x0C] - movsx rdi, di - test edi, edi
+ mov eax, dword ptr [rbp-0x0C] + cwde + xor edi, edi + test eax, eax
setge dil
- movzx rdi, dil
call [<unknown method>]
- mov esi, dword ptr [rbp-0x0C] - movsx rsi, si
+ mov eax, dword ptr [rbp-0x0C] + movsx rsi, ax
xor edi, edi call [<unknown method>] mov dword ptr [rbp-0x10], eax @@ -38,14 +38,14 @@ G_M35089_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=57 bbWeight=1 PerfScore 16.75
+ ;; size=52 bbWeight=1 PerfScore 16.75
G_M35089_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 80, prolog size 10, PerfScore 22.25, instruction count 24, allocated bytes for code 80 (MethodHash=ddbd76ee) for method System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
+; Total bytes of code 75, prolog size 10, PerfScore 22.25, instruction count 24, allocated bytes for code 75 (MethodHash=ddbd76ee) for method System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
; ============================================================ Unwind Info:

+11 (+20.75%) : 922.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)

@@ -7,36 +7,40 @@ ; ; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp-0x10] do-not-enreg[] ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 byref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20] + xor eax, eax + mov qword ptr [rbp-0x18], rax
mov qword ptr [rbp-0x08], rdi mov qword ptr [rbp-0x10], rdi
- ;; size=18 bbWeight=1 PerfScore 3.75
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rdi, qword ptr [rbp-0x10] call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE ; byrRegs +[rax]
- mov rcx, rax - ; byrRegs +[rcx]
+ mov bword ptr [rbp-0x18], rax
mov eax, 512 ; byrRegs -[rax]
- mov edi, 8
+ mov ecx, 8
xor edx, edx
- div edx:eax, edi
+ div edx:eax, ecx + mov rcx, bword ptr [rbp-0x18] + ; byrRegs +[rcx]
mov dword ptr [rcx+0x08], eax
- ;; size=29 bbWeight=1 PerfScore 29.00
+ ;; size=34 bbWeight=1 PerfScore 30.75
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 53, prolog size 14, PerfScore 34.50, instruction count 16, allocated bytes for code 53 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================ Unwind Info: @@ -49,5 +53,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 38546.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -5,43 +5,48 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this -; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this +; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi - mov bword ptr [rbp-0x18], rdi - mov qword ptr [rbp-0x20], rsi - ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax + mov qword ptr [rbp-0x20], rax + mov qword ptr [rbp-0x08], rsi + mov bword ptr [rbp-0x10], rdi + mov qword ptr [rbp-0x18], rsi + ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18] - ; byrRegs +[rdi] - mov rbx, gword ptr [rdi] - ; gcrRegs +[rbx] - mov rdi, qword ptr [rbp-0x20] - ; byrRegs -[rdi] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x20], rax + mov rdi, qword ptr [rbp-0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x20] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24 - pop rbx
+ add rsp, 32
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+16 (+21.62%) : 34315.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)

@@ -8,54 +8,58 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[] ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20] + xor eax, eax + mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x18], rax + mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08] - mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10] + ; gcrRegs -[rcx] + mov eax, ecx
; gcrRegs -[rax] add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08] - ; gcrRegs +[rdx] - mov rdi, gword ptr [rdx+0x08] - ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx] - idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08] + mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08] jae SHORT G_M41139_IG04 mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10] - ; gcrRegs -[rcx] - ; byrRegs +[rcx] - mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10] + ; byrRegs +[rax] + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax] + ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi] - ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================ Unwind Info: @@ -68,5 +72,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

coreclr_tests.run.linux.x64.checked.mch

-15 (-9.74%) : 230953.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)

@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10] - movzx r9, r9b - test r9d, r9d
+ mov eax, dword ptr [rbp+0x10] + movzx rax, al + test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d - mov dword ptr [rbp-0x30], r9d
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x30], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30] - mov dword ptr [rbp-0x2C], r9d - mov r9d, dword ptr [rbp-0x2C] - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9, r9 - ; gcrRegs +[r9] - mov gword ptr [rsp+0x10], r9 - xor r9d, r9d - ; gcrRegs -[r9] - mov dword ptr [rsp+0x18], r9d - mov r9d, dword ptr [rbp-0x28] - movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30] + mov dword ptr [rbp-0x2C], eax + mov eax, dword ptr [rbp-0x2C] + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor rax, rax + ; gcrRegs +[rax] + mov gword ptr [rsp+0x10], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x18], eax + mov eax, dword ptr [rbp-0x28] + movzx r9, al
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rsi, gword ptr [rbp-0x10] @@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rcx rdx rsi rdi] nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================ Unwind Info:

-6 (-8.70%) : 355481.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)

@@ -19,30 +19,30 @@ G_M18391_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=17 bbWeight=1 PerfScore 3.75 G_M18391_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rbp-0x0C] - movsx rsi, si - movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C] + cwde + movzx rsi, al
mov rdi, bword ptr [rbp-0x08] ; byrRegs +[rdi] call [<unknown method>] ; byrRegs -[rdi]
- mov esi, dword ptr [rbp-0x0C] - movsx rsi, si - sar esi, 8 - movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C] + cwde + sar eax, 8 + movzx rsi, al
mov rdi, bword ptr [rbp-0x08] ; byrRegs +[rdi] call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=46 bbWeight=1 PerfScore 11.75
+ ;; size=40 bbWeight=1 PerfScore 11.75
G_M18391_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 69, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 69 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
+; Total bytes of code 63, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 63 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
; ============================================================ Unwind Info:

-6 (-8.70%) : 391139.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)

@@ -19,30 +19,30 @@ G_M18391_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=17 bbWeight=1 PerfScore 3.75 G_M18391_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov esi, dword ptr [rbp-0x0C] - movsx rsi, si - movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C] + cwde + movzx rsi, al
mov rdi, bword ptr [rbp-0x08] ; byrRegs +[rdi] call [<unknown method>] ; byrRegs -[rdi]
- mov esi, dword ptr [rbp-0x0C] - movsx rsi, si - sar esi, 8 - movzx rsi, sil
+ mov eax, dword ptr [rbp-0x0C] + cwde + sar eax, 8 + movzx rsi, al
mov rdi, bword ptr [rbp-0x08] ; byrRegs +[rdi] call [<unknown method>] ; byrRegs -[rdi] nop
- ;; size=46 bbWeight=1 PerfScore 11.75
+ ;; size=40 bbWeight=1 PerfScore 11.75
G_M18391_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 16 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 69, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 69 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
+; Total bytes of code 63, prolog size 10, PerfScore 17.25, instruction count 20, allocated bytes for code 63 (MethodHash=3800b828) for method ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
; ============================================================ Unwind Info:

+12 (+21.43%) : 224438.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -5,43 +5,48 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this -; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this +; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi - mov bword ptr [rbp-0x18], rdi - mov qword ptr [rbp-0x20], rsi - ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax + mov qword ptr [rbp-0x20], rax + mov qword ptr [rbp-0x08], rsi + mov bword ptr [rbp-0x10], rdi + mov qword ptr [rbp-0x18], rsi + ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18] - ; byrRegs +[rdi] - mov rbx, gword ptr [rdi] - ; gcrRegs +[rbx] - mov rdi, qword ptr [rbp-0x20] - ; byrRegs -[rdi] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x20], rax + mov rdi, qword ptr [rbp-0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x20] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24 - pop rbx
+ add rsp, 32
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 229250.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)

@@ -5,43 +5,48 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x18] do-not-enreg[] this -; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x20] do-not-enreg[]
+; V00 this [V00 ] ( 1, 1 ) byref -> [rbp-0x10] do-not-enreg[] this +; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp-0x18] do-not-enreg[]
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x20]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 24
+ sub rsp, 32
lea rbp, [rsp+0x20]
- mov qword ptr [rbp-0x10], rsi - mov bword ptr [rbp-0x18], rdi - mov qword ptr [rbp-0x20], rsi - ;; size=23 bbWeight=1 PerfScore 5.75
+ xor eax, eax + mov qword ptr [rbp-0x20], rax + mov qword ptr [rbp-0x08], rsi + mov bword ptr [rbp-0x10], rdi + mov qword ptr [rbp-0x18], rsi + ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, bword ptr [rbp-0x18] - ; byrRegs +[rdi] - mov rbx, gword ptr [rdi] - ; gcrRegs +[rbx] - mov rdi, qword ptr [rbp-0x20] - ; byrRegs -[rdi] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp-0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x20], rax + mov rdi, qword ptr [rbp-0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x20] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 24 - pop rbx
+ add rsp, 32
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 2 * 8 + 8 = 24 = 0x18 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+15 (+22.73%) : 360073.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)

@@ -5,40 +5,43 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Internal.TypeSystem.MethodSignature>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Internal.TypeSystem.MethodSignature>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M16988_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi - ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov gword ptr [rbp-0x08], rdi + ;; size=20 bbWeight=1 PerfScore 4.00
G_M16988_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x10] - ; gcrRegs +[rdi] - mov rbx, gword ptr [rdi+0x18] - ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov rax, gword ptr [rax+0x18] + mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E
- ; gcrRegs -[rdi]
mov esi, 80 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax]
sete al movzx rax, al
- ;; size=47 bbWeight=1 PerfScore 9.00
+ ;; size=55 bbWeight=1 PerfScore 11.00
G_M16988_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8 - pop rbx
+ add rsp, 16
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 66, prolog size 8, PerfScore 15.75, instruction count 18, allocated bytes for code 66 (MethodHash=956fbda3) for method Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
+; Total bytes of code 81, prolog size 16, PerfScore 16.75, instruction count 20, allocated bytes for code 81 (MethodHash=956fbda3) for method Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -46,11 +49,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

libraries.crossgen2.linux.x64.checked.mch

-2 (-1.79%) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)

@@ -27,24 +27,24 @@ G_M28342_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [rbp-0x10] call [<unknown method>]
- cvttsd2si rdi, xmm0 - mov qword ptr [rbp-0x18], rdi - mov edi, -1 - movsxd rdi, edi - cmp qword ptr [rbp-0x18], rdi
+ cvttsd2si rax, xmm0 + mov qword ptr [rbp-0x18], rax + mov eax, -1 + cdqe + cmp qword ptr [rbp-0x18], rax
jl SHORT G_M28342_IG03
- mov edi, 0xD1FFAB1E - movsxd rdi, edi - cmp qword ptr [rbp-0x18], rdi
+ mov eax, 0xD1FFAB1E + cdqe + cmp qword ptr [rbp-0x18], rax
jle SHORT G_M28342_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edi, 62 call [<unknown method>] ;; size=11 bbWeight=1 PerfScore 3.25 G_M28342_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x20], rdi
+ xor eax, eax + mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x18] @@ -60,7 +60,7 @@ G_M28342_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
; ============================================================ Unwind Info:

-2 (-1.79%) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

@@ -27,24 +27,24 @@ G_M50957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rdi, [rbp-0x10] call [<unknown method>]
- cvttsd2si rdi, xmm0 - mov qword ptr [rbp-0x18], rdi - mov edi, -1 - movsxd rdi, edi - cmp qword ptr [rbp-0x18], rdi
+ cvttsd2si rax, xmm0 + mov qword ptr [rbp-0x18], rax + mov eax, -1 + cdqe + cmp qword ptr [rbp-0x18], rax
jl SHORT G_M50957_IG03
- mov edi, 0xD1FFAB1E - movsxd rdi, edi - cmp qword ptr [rbp-0x18], rdi
+ mov eax, 0xD1FFAB1E + cdqe + cmp qword ptr [rbp-0x18], rax
jle SHORT G_M50957_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edi, 62 call [<unknown method>] ;; size=11 bbWeight=1 PerfScore 3.25 G_M50957_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x20], rdi
+ xor eax, eax + mov gword ptr [rbp-0x20], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x18] @@ -60,7 +60,7 @@ G_M50957_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
; ============================================================ Unwind Info:

-1 (-0.93%) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

@@ -24,8 +24,8 @@ G_M30483_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x08], rdi ;; size=20 bbWeight=1 PerfScore 4.00 G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor edi, edi - mov gword ptr [rbp-0x18], rdi
+ xor eax, eax + mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-0x18] @@ -34,23 +34,23 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rdx rdi] mov dword ptr [rbp-0x0C], eax
- mov rsi, gword ptr [rbp-0x08] - ; gcrRegs +[rsi] - cmp dword ptr [rsi+0x08], 0
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x08], 0
je SHORT G_M30483_IG03
- xor esi, esi - ; gcrRegs -[rsi]
+ xor eax, eax + ; gcrRegs -[rax]
cmp dword ptr [rbp-0x0C], -1
- setne sil - mov dword ptr [rbp-0x1C], esi
+ setne al + mov dword ptr [rbp-0x1C], eax
jmp SHORT G_M30483_IG04
- ;; size=53 bbWeight=1 PerfScore 18.75
+ ;; size=52 bbWeight=1 PerfScore 18.75
G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x1C], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rsi, qword ptr [(reloc)] ; const ptr - mov rsi, gword ptr [rsi]
+ mov rax, qword ptr [(reloc)] ; const ptr + mov rsi, gword ptr [rax]
; gcrRegs +[rsi] mov edi, dword ptr [rbp-0x1C] call [<unknown method>] @@ -63,7 +63,7 @@ G_M30483_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 108, prolog size 16, PerfScore 34.50, instruction count 30, allocated bytes for code 108 (MethodHash=1f4588ec) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
+; Total bytes of code 107, prolog size 16, PerfScore 34.50, instruction count 30, allocated bytes for code 107 (MethodHash=1f4588ec) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)
; ============================================================ Unwind Info:

+0 (0.00%) : 22836.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -23,8 +23,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x08], rdi ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x18], rdi
+ xor eax, eax + mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-0x18] @@ -33,8 +33,8 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rdx rdi] mov dword ptr [rbp-0x0C], eax
- mov rsi, qword ptr [(reloc)] ; const ptr - mov rsi, gword ptr [rsi]
+ mov rax, qword ptr [(reloc)] ; const ptr + mov rsi, gword ptr [rax]
; gcrRegs +[rsi] mov edi, dword ptr [rbp-0x0C] call [<unknown method>]

+0 (0.00%) : 22844.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],int):int (MinOpts)

@@ -24,8 +24,8 @@ G_M44268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=23 bbWeight=1 PerfScore 5.00 G_M44268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x18], rdi
+ xor eax, eax + mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov esi, dword ptr [rbp-0x0C]

+1 (+0.61%) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -46,10 +46,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { lea rdi, [rbp-0x10] call [<unknown method>] mov dword ptr [rbp-0x24], eax
- xor edi, edi - mov dword ptr [rbp-0x28], edi - xor edi, edi - mov dword ptr [rbp-0x2C], edi
+ xor eax, eax + mov dword ptr [rbp-0x28], eax + xor eax, eax + mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.00 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -57,24 +57,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov esi, dword ptr [rbp-0x2C] call [<unknown method>] ; byrRegs +[rax]
- movzx rdi, byte ptr [rax] - mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x2C] call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x34] sub ecx, eax
- or ecx, dword ptr [rbp-0x28] - mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x28] + mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C] inc eax mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C] - cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C] + cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x28], 0 @@ -86,7 +89,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

libraries.pmi.linux.x64.checked.mch

-14 (-0.01%) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

@@ -1340,33 +1340,33 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x18], rax cmp gword ptr [rbp-0x18], 0 je SHORT G_M12913_IG05
- mov rdx, gword ptr [rbp-0x18] - ; gcrRegs +[rdx] - mov rdx, gword ptr [rdx+0x08] - mov gword ptr [rbp-0x20], rdx
+ mov rax, gword ptr [rbp-0x18] + mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x20], rax
;; size=33 bbWeight=1 PerfScore 12.00 G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdx] - mov rdx, gword ptr [rbp-0x08]
+ ; gcrRegs -[rax] + mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov rdx, gword ptr [rax+0x08]
; gcrRegs +[rdx]
- mov rdx, gword ptr [rdx+0x08]
mov rsi, gword ptr [rbp-0x20] ; gcrRegs +[rsi] mov rdi, 0xD1FFAB1E ; <unknown method> call [<unknown method>]
- ; gcrRegs -[rdx rsi] +[rax]
+ ; gcrRegs -[rdx rsi]
; gcr arg pop 0 mov gword ptr [rbp-0x28], rax ;; size=32 bbWeight=1 PerfScore 8.25 G_M12913_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
- mov rdi, gword ptr [rbp-0x28] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x13D0], rdi
+ mov rax, gword ptr [rbp-0x28] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x13D0], rax
jmp G_M12913_IG764 ;; size=16 bbWeight=1 PerfScore 4.00 G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10] ; gcrRegs +[rdi] call [<unknown method>] @@ -1375,16 +1375,16 @@ G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x50], rax cmp gword ptr [rbp-0x50], 0 je SHORT G_M12913_IG06
- mov rdi, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x50] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x58], rax
- mov rdi, gword ptr [rbp-0x50]
+ mov rax, gword ptr [rbp-0x50] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 @@ -1425,16 +1425,16 @@ G_M12913_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x68], rax cmp gword ptr [rbp-0x68], 0 je SHORT G_M12913_IG07
- mov rdi, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x68] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x58], rax
- mov rdi, gword ptr [rbp-0x68]
+ mov rax, gword ptr [rbp-0x68] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 @@ -1475,16 +1475,16 @@ G_M12913_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x70], rax cmp gword ptr [rbp-0x70], 0 je SHORT G_M12913_IG08
- mov rdi, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x70] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x78], rax
- mov rdi, gword ptr [rbp-0x70]
+ mov rax, gword ptr [rbp-0x70] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 @@ -1519,9 +1519,9 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x88], rax cmp gword ptr [rbp-0x88], 0 je G_M12913_IG14
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 @@ -1538,47 +1538,45 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x90], rax cmp gword ptr [rbp-0x90], 0 je SHORT G_M12913_IG09
- mov rdi, gword ptr [rbp-0x90] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x08], 1 - sete dil - ; gcrRegs -[rdi] - movzx rdi, dil - mov dword ptr [rbp-0x137C], edi - jmp SHORT G_M12913_IG10 - ;; size=154 bbWeight=1 PerfScore 46.25 -G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rax, gword ptr [rbp-0x90] + cmp dword ptr [rax+0x08], 1 + sete al
; gcrRegs -[rax]
- xor edi, edi - mov dword ptr [rbp-0x137C], edi
+ movzx rax, al + mov dword ptr [rbp-0x137C], eax + jmp SHORT G_M12913_IG10 + ;; size=152 bbWeight=1 PerfScore 46.25 +G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + xor eax, eax + mov dword ptr [rbp-0x137C], eax
;; size=8 bbWeight=1 PerfScore 1.25 G_M12913_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cmp dword ptr [rbp-0x137C], 0 je G_M12913_IG13
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88] + ; gcrRegs +[rax] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
; gcr arg pop 0 cmp gword ptr [rax+0x10], 0 je G_M12913_IG12
- mov rdi, gword ptr [rbp-0x88]
+ mov rax, gword ptr [rbp-0x88] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x98], rax
- mov rdi, gword ptr [rbp-0x98] - ; gcrRegs +[rdi] - mov rdi, gword ptr [rdi+0x10] - cmp gword ptr [rdi+0x10], 0
+ mov rax, gword ptr [rbp-0x98] + mov rax, gword ptr [rax+0x10] + cmp gword ptr [rax+0x10], 0
jne SHORT G_M12913_IG11 jmp G_M12913_IG15 ;; size=88 bbWeight=1 PerfScore 29.00 G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10] ; gcrRegs +[rdi] call [<unknown method>] @@ -1587,27 +1585,26 @@ G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov gword ptr [rbp-0xA0], rax cmp gword ptr [rbp-0xA0], 0 je G_M12913_IG19
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x1398], rax
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x80], rax
- mov rdi, gword ptr [rbp-0x1398] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x58], rdi
+ mov rax, gword ptr [rbp-0x1398] + mov gword ptr [rbp-0x58], rax
jmp G_M12913_IG16 ;; size=92 bbWeight=1 PerfScore 26.00 G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rdi]
+ ; gcrRegs -[rax]
mov rdi, gword ptr [rbp-0x10] ; gcrRegs +[rdi] call [<unknown method>] @@ -1616,27 +1613,26 @@ G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov gword ptr [rbp-0xA0], rax cmp gword ptr [rbp-0xA0], 0 je G_M12913_IG19
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x1390], rax
- mov rdi, gword ptr [rbp-0xA0]
+ mov rax, gword ptr [rbp-0xA0] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi]
- mov rdi, gword ptr [rdi+0x08]
call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0 mov gword ptr [rbp-0x80], rax
- mov rdi, gword ptr [rbp-0x1390] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x58], rdi
+ mov rax, gword ptr [rbp-0x1390]
...

+1 (+0.61%) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -44,10 +44,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { lea rdi, [rbp-0x10] call [<unknown method>] mov dword ptr [rbp-0x24], eax
- xor edi, edi - mov dword ptr [rbp-0x28], edi - xor edi, edi - mov dword ptr [rbp-0x2C], edi
+ xor eax, eax + mov dword ptr [rbp-0x28], eax + xor eax, eax + mov dword ptr [rbp-0x2C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.00 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -55,24 +55,27 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov esi, dword ptr [rbp-0x2C] call [<unknown method>] ; byrRegs +[rax]
- movzx rdi, byte ptr [rax] - mov dword ptr [rbp-0x34], edi
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x34], eax
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x2C] call [<unknown method>]
+ ; byrRegs +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x34] sub ecx, eax
- or ecx, dword ptr [rbp-0x28] - mov dword ptr [rbp-0x28], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x28] + mov dword ptr [rbp-0x28], eax
mov eax, dword ptr [rbp-0x2C] inc eax mov dword ptr [rbp-0x2C], eax
- ;; size=55 bbWeight=1 PerfScore 20.50
+ ;; size=56 bbWeight=1 PerfScore 20.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x2C] - cmp edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x2C] + cmp eax, dword ptr [rbp-0x24]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x28], 0 @@ -84,7 +87,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 165, prolog size 10, PerfScore 57.25, instruction count 51, allocated bytes for code 165 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 166, prolog size 10, PerfScore 57.50, instruction count 52, allocated bytes for code 166 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

libraries_tests.run.linux.x64.Release.mch

-41 (-14.96%) : 145785.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)

@@ -26,86 +26,86 @@ G_M34103_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=31 bbWeight=1 PerfScore 6.00 G_M34103_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - xor edi, edi - mov qword ptr [r9], rdi - mov r9, bword ptr [rbp-0x08] - mov edi, dword ptr [rbp-0x0C] - mov dword ptr [r9], edi - mov r9, bword ptr [rbp-0x08] - cmp dword ptr [r9], 0
+ mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + xor ecx, ecx + mov qword ptr [rax], rcx + mov rax, bword ptr [rbp-0x08] + mov ecx, dword ptr [rbp-0x0C] + mov dword ptr [rax], ecx + mov rax, bword ptr [rbp-0x08] + cmp dword ptr [rax], 0 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x10], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 1 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x18], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 2 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x14], eax + xor eax, eax + mov dword ptr [rbp-0x20], eax + xor eax, eax + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor eax, eax + mov dword ptr [rsp+0x10], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 4 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rsp+0x18], eax + xor eax, eax + mov dword ptr [rsp+0x20], eax + xor eax, eax + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp-0x14] + mov dword ptr [rsp+0x30], eax + xor eax, eax + mov dword ptr [rsp+0x38], eax + xor eax, eax + mov dword ptr [rsp+0x40], eax + xor eax, eax + mov dword ptr [rsp+0x48], eax + xor eax, eax + mov dword ptr [rsp+0x50], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + xor r9d, r9d + cmp dword ptr [rax], 3
sete r9b
- ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x10], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 1 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x18], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 2 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x14], r9d - xor r9d, r9d - mov dword ptr [rbp-0x20], r9d - xor r9d, r9d - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9d, r9d - mov dword ptr [rsp+0x10], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 4 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rsp+0x18], r9d - xor r9d, r9d - mov dword ptr [rsp+0x20], r9d - xor r9d, r9d - mov dword ptr [rsp+0x28], r9d - mov r9d, dword ptr [rbp-0x14] - mov dword ptr [rsp+0x30], r9d - xor r9d, r9d - mov dword ptr [rsp+0x38], r9d - xor r9d, r9d - mov dword ptr [rsp+0x40], r9d - xor r9d, r9d - mov dword ptr [rsp+0x48], r9d - xor r9d, r9d - mov dword ptr [rsp+0x50], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 3 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x18] mov edx, dword ptr [rbp-0x10] xor ecx, ecx xor r8d, r8d call [<unknown method>]
+ ; byrRegs -[rax]
mov rax, bword ptr [rbp-0x08] ; byrRegs +[rax] mov ecx, dword ptr [rbp-0x20] mov dword ptr [rax+0x04], ecx
- ;; size=234 bbWeight=1 PerfScore 59.00
+ ;; size=193 bbWeight=1 PerfScore 59.00
G_M34103_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 128 pop rbp ret ;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 274, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 274 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
+; Total bytes of code 233, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 233 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
; ============================================================ Unwind Info:

-41 (-14.96%) : 160721.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)

@@ -26,86 +26,86 @@ G_M34103_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x0C], esi ;; size=31 bbWeight=1 PerfScore 6.00 G_M34103_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - xor edi, edi - mov qword ptr [r9], rdi - mov r9, bword ptr [rbp-0x08] - mov edi, dword ptr [rbp-0x0C] - mov dword ptr [r9], edi - mov r9, bword ptr [rbp-0x08] - cmp dword ptr [r9], 0
+ mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + xor ecx, ecx + mov qword ptr [rax], rcx + mov rax, bword ptr [rbp-0x08] + mov ecx, dword ptr [rbp-0x0C] + mov dword ptr [rax], ecx + mov rax, bword ptr [rbp-0x08] + cmp dword ptr [rax], 0 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x10], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 1 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x18], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 2 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x14], eax + xor eax, eax + mov dword ptr [rbp-0x20], eax + xor eax, eax + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor eax, eax + mov dword ptr [rsp+0x10], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + cmp dword ptr [rax], 4 + sete al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rsp+0x18], eax + xor eax, eax + mov dword ptr [rsp+0x20], eax + xor eax, eax + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp-0x14] + mov dword ptr [rsp+0x30], eax + xor eax, eax + mov dword ptr [rsp+0x38], eax + xor eax, eax + mov dword ptr [rsp+0x40], eax + xor eax, eax + mov dword ptr [rsp+0x48], eax + xor eax, eax + mov dword ptr [rsp+0x50], eax + mov rax, bword ptr [rbp-0x08] + ; byrRegs +[rax] + xor r9d, r9d + cmp dword ptr [rax], 3
sete r9b
- ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x10], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 1 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x18], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 2 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rbp-0x14], r9d - xor r9d, r9d - mov dword ptr [rbp-0x20], r9d - xor r9d, r9d - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9d, r9d - mov dword ptr [rsp+0x10], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 4 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b - mov dword ptr [rsp+0x18], r9d - xor r9d, r9d - mov dword ptr [rsp+0x20], r9d - xor r9d, r9d - mov dword ptr [rsp+0x28], r9d - mov r9d, dword ptr [rbp-0x14] - mov dword ptr [rsp+0x30], r9d - xor r9d, r9d - mov dword ptr [rsp+0x38], r9d - xor r9d, r9d - mov dword ptr [rsp+0x40], r9d - xor r9d, r9d - mov dword ptr [rsp+0x48], r9d - xor r9d, r9d - mov dword ptr [rsp+0x50], r9d - mov r9, bword ptr [rbp-0x08] - ; byrRegs +[r9] - cmp dword ptr [r9], 3 - sete r9b - ; byrRegs -[r9] - movzx r9, r9b
lea rdi, [rbp-0x20] mov esi, dword ptr [rbp-0x18] mov edx, dword ptr [rbp-0x10] xor ecx, ecx xor r8d, r8d call [<unknown method>]
+ ; byrRegs -[rax]
mov rax, bword ptr [rbp-0x08] ; byrRegs +[rax] mov ecx, dword ptr [rbp-0x20] mov dword ptr [rax+0x04], ecx
- ;; size=234 bbWeight=1 PerfScore 59.00
+ ;; size=193 bbWeight=1 PerfScore 59.00
G_M34103_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 128 pop rbp ret ;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 274, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 274 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
+; Total bytes of code 233, prolog size 24, PerfScore 66.75, instruction count 72, allocated bytes for code 233 (MethodHash=7e6b7ac8) for method Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
; ============================================================ Unwind Info:

-15 (-9.74%) : 524753.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)

@@ -34,32 +34,32 @@ G_M7440_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs +[rdi] call [<unknown method>] ; gcrRegs -[rdi]
- mov r9d, dword ptr [rbp+0x10] - movzx r9, r9b - test r9d, r9d
+ mov eax, dword ptr [rbp+0x10] + movzx rax, al + test eax, eax
jne SHORT G_M7440_IG03
- xor r9d, r9d - mov dword ptr [rbp-0x30], r9d
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
jmp SHORT G_M7440_IG04
- ;; size=32 bbWeight=1 PerfScore 9.75
+ ;; size=27 bbWeight=1 PerfScore 9.75
G_M7440_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x30], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r9d, dword ptr [rbp-0x30] - mov dword ptr [rbp-0x2C], r9d - mov r9d, dword ptr [rbp-0x2C] - mov dword ptr [rsp], r9d - xor r9d, r9d - mov dword ptr [rsp+0x08], r9d - xor r9, r9 - ; gcrRegs +[r9] - mov gword ptr [rsp+0x10], r9 - xor r9d, r9d - ; gcrRegs -[r9] - mov dword ptr [rsp+0x18], r9d - mov r9d, dword ptr [rbp-0x28] - movzx r9, r9b
+ mov eax, dword ptr [rbp-0x30] + mov dword ptr [rbp-0x2C], eax + mov eax, dword ptr [rbp-0x2C] + mov dword ptr [rsp], eax + xor eax, eax + mov dword ptr [rsp+0x08], eax + xor rax, rax + ; gcrRegs +[rax] + mov gword ptr [rsp+0x10], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x18], eax + mov eax, dword ptr [rbp-0x28] + movzx r9, al
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rsi, gword ptr [rbp-0x10] @@ -72,14 +72,14 @@ G_M7440_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rcx rdx rsi rdi] nop
- ;; size=75 bbWeight=1 PerfScore 17.25
+ ;; size=65 bbWeight=1 PerfScore 17.25
G_M7440_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 154, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 154 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
+; Total bytes of code 139, prolog size 10, PerfScore 37.50, instruction count 41, allocated bytes for code 139 (MethodHash=8f3be2ef) for method System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
; ============================================================ Unwind Info:

+16 (+21.62%) : 230260.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)

@@ -8,54 +8,58 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Collections.Queue> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp-0x0C] do-not-enreg[] ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x18]
;
-; Lcl frame size = 16
+; Lcl frame size = 32
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 16 - lea rbp, [rsp+0x10]
+ sub rsp, 32 + lea rbp, [rsp+0x20] + xor eax, eax + mov qword ptr [rbp-0x18], rax
mov gword ptr [rbp-0x08], rdi mov dword ptr [rbp-0x0C], esi
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x18], rax + mov rcx, gword ptr [rbp-0x08]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp-0x08] - mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10] + ; gcrRegs -[rcx] + mov eax, ecx
; gcrRegs -[rax] add eax, dword ptr [rbp-0x0C]
- mov rdx, gword ptr [rbp-0x08] - ; gcrRegs +[rdx] - mov rdi, gword ptr [rdx+0x08] - ; gcrRegs +[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx] - idiv edx:eax, dword ptr [rdi+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08] + mov rcx, gword ptr [rbp-0x18]
cmp edx, dword ptr [rcx+0x08] jae SHORT G_M41139_IG04 mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10] - ; gcrRegs -[rcx] - ; byrRegs +[rcx] - mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10] + ; byrRegs +[rax] + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=45 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax] + ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 16
+ add rsp, 32
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax rdi] - ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 74, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 74 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================ Unwind Info: @@ -68,5 +72,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+15 (+22.73%) : 736212.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)

@@ -5,40 +5,43 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <System.Threading.RateLimiting.TimerAwaitable>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <System.Threading.RateLimiting.TimerAwaitable>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M20819_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi - ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov gword ptr [rbp-0x08], rdi + ;; size=20 bbWeight=1 PerfScore 4.00
G_M20819_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x10] - ; gcrRegs +[rdi] - mov rbx, gword ptr [rdi+0x10] - ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov rax, gword ptr [rax+0x10] + mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E
- ; gcrRegs -[rdi]
mov esi, 24 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax]
sete al movzx rax, al
- ;; size=47 bbWeight=1 PerfScore 9.00
+ ;; size=55 bbWeight=1 PerfScore 11.00
G_M20819_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8 - pop rbx
+ add rsp, 16
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 66, prolog size 8, PerfScore 15.75, instruction count 18, allocated bytes for code 66 (MethodHash=dbd4aeac) for method System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
+; Total bytes of code 81, prolog size 16, PerfScore 16.75, instruction count 20, allocated bytes for code 81 (MethodHash=dbd4aeac) for method System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -46,11 +49,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+15 (+24.19%) : 79353.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)

@@ -5,37 +5,42 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions>
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 8
+; Lcl frame size = 16
G_M11670_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - push rax
+ sub rsp, 16
lea rbp, [rsp+0x10]
- mov gword ptr [rbp-0x10], rdi - ;; size=12 bbWeight=1 PerfScore 4.50
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov gword ptr [rbp-0x08], rdi + ;; size=20 bbWeight=1 PerfScore 4.00
G_M11670_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rbx, gword ptr [rbp-0x10] - ; gcrRegs +[rbx]
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x10], rax
mov rdi, 0xD1FFAB1E mov esi, 38 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
+ ; gcrRegs -[rax]
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- cmp rbx, gword ptr [rax]
+ mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax]
sete al movzx rax, al
- ;; size=43 bbWeight=1 PerfScore 7.00
+ ;; size=51 bbWeight=1 PerfScore 9.00
G_M11670_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 8 - pop rbx
+ add rsp, 16
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 62, prolog size 8, PerfScore 13.75, instruction count 17, allocated bytes for code 62 (MethodHash=a50fd269) for method Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
+; Total bytes of code 77, prolog size 16, PerfScore 14.75, instruction count 19, allocated bytes for code 77 (MethodHash=a50fd269) for method Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -43,11 +48,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x03 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x03 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 0 * 8 + 8 = 8 = 0x08 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

librariestestsnotieredcompilation.run.linux.x64.Release.mch

-7 (-2.98%) : 293281.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get744525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

@@ -44,21 +44,21 @@ G_M58081_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M58081_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop nop
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - mov edi, dword ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x1C], edi - xor edi, edi
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov eax, dword ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x1C], eax + xor eax, eax
cmp dword ptr [rbp-0x1C], 0
- setg dil - mov dword ptr [rbp-0x20], edi
+ setg al + mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M58081_IG08
+ je SHORT G_M58081_IG08
nop nop jmp SHORT G_M58081_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M58081_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop lea rdi, [rbp-0x18] @@ -91,36 +91,36 @@ G_M58081_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M58081_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x30], edi - mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x30], eax + mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18] call [<unknown method>] ; gcr arg pop 0 mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30] - cmp edi, dword ptr [rbp-0x34] - setb dil - movzx rdi, dil - mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30] + cmp eax, dword ptr [rbp-0x34] + setb al + movzx rax, al + mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0 jne SHORT G_M58081_IG05 nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M58081_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax] xor ecx, ecx mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx - mov dword ptr [rbp-0x28], ecx
+ xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x28], eax
nop ;; size=15 bbWeight=1 PerfScore 3.75 G_M58081_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28] ;; size=3 bbWeight=1 PerfScore 1.00 G_M58081_IG10: ; bbWeight=1, epilog, nogc, extend @@ -129,7 +129,7 @@ G_M58081_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=ffbf1d1e) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=ffbf1d1e) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================ Unwind Info:

-7 (-2.98%) : 289202.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get798449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

@@ -44,21 +44,21 @@ G_M39307_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M39307_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop nop
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - mov edi, dword ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x1C], edi - xor edi, edi
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov eax, dword ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x1C], eax + xor eax, eax
cmp dword ptr [rbp-0x1C], 2
- setge dil - mov dword ptr [rbp-0x20], edi
+ setge al + mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M39307_IG08
+ je SHORT G_M39307_IG08
nop nop jmp SHORT G_M39307_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M39307_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop lea rdi, [rbp-0x18] @@ -91,36 +91,36 @@ G_M39307_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M39307_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x30], edi - mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x30], eax + mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18] call [<unknown method>] ; gcr arg pop 0 mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30] - cmp edi, dword ptr [rbp-0x34] - setb dil - movzx rdi, dil - mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30] + cmp eax, dword ptr [rbp-0x34] + setb al + movzx rax, al + mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0 jne SHORT G_M39307_IG05 nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M39307_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax] xor ecx, ecx mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx - mov dword ptr [rbp-0x28], ecx
+ xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x28], eax
nop ;; size=15 bbWeight=1 PerfScore 3.75 G_M39307_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28] ;; size=3 bbWeight=1 PerfScore 1.00 G_M39307_IG10: ; bbWeight=1, epilog, nogc, extend @@ -129,7 +129,7 @@ G_M39307_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=47286674) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=47286674) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================ Unwind Info:

-7 (-2.98%) : 289219.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477_Get805454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

@@ -44,21 +44,21 @@ G_M47980_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M47980_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop nop
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - mov edi, dword ptr [rdi+0x4C] - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x1C], edi - xor edi, edi
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov eax, dword ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x1C], eax + xor eax, eax
cmp dword ptr [rbp-0x1C], 3
- setge dil - mov dword ptr [rbp-0x20], edi
+ setge al + mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0
- je G_M47980_IG08
+ je SHORT G_M47980_IG08
nop nop jmp SHORT G_M47980_IG07
- ;; size=39 bbWeight=1 PerfScore 14.25
+ ;; size=34 bbWeight=1 PerfScore 14.25
G_M47980_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop lea rdi, [rbp-0x18] @@ -91,36 +91,36 @@ G_M47980_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M47980_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x30], edi - mov edi, dword ptr [rbp-0x1C] - dec edi - mov dword ptr [rbp-0x1C], edi
+ mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x30], eax + mov eax, dword ptr [rbp-0x1C] + dec eax + mov dword ptr [rbp-0x1C], eax
lea rdi, [rbp-0x18] call [<unknown method>] ; gcr arg pop 0 mov dword ptr [rbp-0x34], eax
- mov edi, dword ptr [rbp-0x30] - cmp edi, dword ptr [rbp-0x34] - setb dil - movzx rdi, dil - mov dword ptr [rbp-0x2C], edi
+ mov eax, dword ptr [rbp-0x30] + cmp eax, dword ptr [rbp-0x34] + setb al + movzx rax, al + mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0 jne SHORT G_M47980_IG05 nop
- ;; size=53 bbWeight=1 PerfScore 17.50
+ ;; size=51 bbWeight=1 PerfScore 17.50
G_M47980_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, gword ptr [rbp-0x08] ; gcrRegs +[rax] xor ecx, ecx mov dword ptr [rax+0x4C], ecx
- xor ecx, ecx - mov dword ptr [rbp-0x28], ecx
+ xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x28], eax
nop ;; size=15 bbWeight=1 PerfScore 3.75 G_M47980_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
mov eax, dword ptr [rbp-0x28] ;; size=3 bbWeight=1 PerfScore 1.00 G_M47980_IG10: ; bbWeight=1, epilog, nogc, extend @@ -129,7 +129,7 @@ G_M47980_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 235 (MethodHash=c0264493) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 228, prolog size 38, PerfScore 72.33, instruction count 76, allocated bytes for code 228 (MethodHash=c0264493) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================ Unwind Info:

+2 (+0.83%) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)

@@ -47,18 +47,17 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x18], rax
- mov rdi, gword ptr [rbp-0x18] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x10], rdi - mov rdi, gword ptr [rbp-0x10] - mov gword ptr [rbp-0x20], rdi - xor edi, edi - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x24], edi
+ mov rax, gword ptr [rbp-0x18] + mov gword ptr [rbp-0x10], rax + mov rax, gword ptr [rbp-0x10] + mov gword ptr [rbp-0x20], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x24], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] call [<unknown method>]
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x30], rax mov rdi, 0xD1FFAB1E ; <unknown class> @@ -88,7 +87,8 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx rdx rsi rdi r8] ; gcr arg pop 0 mov dword ptr [rbp-0x3C], eax
- mov edi, dword ptr [rbp-0x24]
+ mov eax, dword ptr [rbp-0x24] + mov edi, eax
add edi, dword ptr [rbp-0x3C] mov rdx, gword ptr [rbp-0x08] ; gcrRegs +[rdx] @@ -105,14 +105,14 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rsi rdi] ; gcr arg pop 0 nop
- ;; size=182 bbWeight=1 PerfScore 42.25
+ ;; size=184 bbWeight=1 PerfScore 42.50
G_M35357_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 80 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 241, prolog size 39, PerfScore 57.83, instruction count 52, allocated bytes for code 241 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
+; Total bytes of code 243, prolog size 39, PerfScore 58.08, instruction count 53, allocated bytes for code 243 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
; ============================================================ Unwind Info:

+3 (+0.83%) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)

@@ -7,40 +7,41 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x10] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [rbp-0x20] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [rbp-0x30] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [rbp-0x34] do-not-enreg[] must-init -; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [rbp-0x38] do-not-enreg[] must-init -; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [rbp-0x3C] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [rbp-0x08] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [rbp-0x18] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [rbp-0x28] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [rbp-0x2C] do-not-enreg[] must-init +; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [rbp-0x30] do-not-enreg[] must-init +; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [rbp-0x34] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [rbp-0x40] do-not-enreg[] "impSpillStackEnsure" -; V08 tmp2 [V08 ] ( 1, 1 ) int -> [rbp-0x44] do-not-enreg[] must-init -; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [rbp-0x50] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [rbp-0x58] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V11 tmp5 [V11 ] ( 1, 1 ) int -> [rbp-0x5C] do-not-enreg[] must-init -; V12 tmp6 [V12 ] ( 1, 1 ) int -> [rbp-0x60] do-not-enreg[] "impSpillStackEnsure" -; V13 tmp7 [V13 ] ( 1, 1 ) int -> [rbp-0x64] do-not-enreg[] "impSpillStackEnsure" -; V14 tmp8 [V14 ] ( 1, 1 ) int -> [rbp-0x68] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [rbp-0x38] do-not-enreg[] "impSpillStackEnsure" +; V08 tmp2 [V08 ] ( 1, 1 ) int -> [rbp-0x3C] do-not-enreg[] must-init +; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [rbp-0x48] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [rbp-0x50] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V11 tmp5 [V11 ] ( 1, 1 ) int -> [rbp-0x54] do-not-enreg[] must-init +; V12 tmp6 [V12 ] ( 1, 1 ) int -> [rbp-0x58] do-not-enreg[] "impSpillStackEnsure" +; V13 tmp7 [V13 ] ( 1, 1 ) int -> [rbp-0x5C] do-not-enreg[] "impSpillStackEnsure" +; V14 tmp8 [V14 ] ( 1, 1 ) int -> [rbp-0x60] do-not-enreg[] "impSpillStackEnsure" +; TEMP_01 ref -> [rbp-0x68]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 104
+ sub rsp, 112
lea rbp, [rsp+0x70] xor eax, eax
- mov qword ptr [rbp-0x5C], rax - mov dword ptr [rbp-0x54], eax
+ mov qword ptr [rbp-0x68], rax
vxorps xmm8, xmm8, xmm8
- vmovdqu ymmword ptr [rbp-0x50], ymm8 - mov gword ptr [rbp-0x10], rdi - mov gword ptr [rbp-0x20], rsi - mov gword ptr [rbp-0x18], rdx - mov gword ptr [rbp-0x30], rcx - mov gword ptr [rbp-0x28], r8 - ;; size=50 bbWeight=1 PerfScore 12.33
+ vmovdqu ymmword ptr [rbp-0x60], ymm8 + vmovdqa xmmword ptr [rbp-0x40], xmm8 + mov qword ptr [rbp-0x30], rax + mov gword ptr [rbp-0x08], rdi + mov gword ptr [rbp-0x18], rsi + mov gword ptr [rbp-0x10], rdx + mov gword ptr [rbp-0x28], rcx + mov gword ptr [rbp-0x20], r8 + ;; size=55 bbWeight=1 PerfScore 13.33
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cmp dword ptr [(reloc)], 0 je SHORT G_M13185_IG04 @@ -51,67 +52,66 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=5 bbWeight=0.50 PerfScore 0.50 G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- mov rdi, gword ptr [rbp-0x20]
+ mov rdi, gword ptr [rbp-0x18]
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x30]
+ mov rsi, gword ptr [rbp-0x28]
; gcrRegs +[rsi] call [<unknown method>] ; gcrRegs -[rsi rdi] ; gcr arg pop 0
- mov dword ptr [rbp-0x40], eax - mov esi, dword ptr [rbp-0x40] - movzx rsi, sil - mov dword ptr [rbp-0x34], esi - cmp dword ptr [rbp-0x34], 0
+ mov dword ptr [rbp-0x38], eax + mov eax, dword ptr [rbp-0x38] + movzx rax, al + mov dword ptr [rbp-0x2C], eax + cmp dword ptr [rbp-0x2C], 0
je SHORT G_M13185_IG05 nop
- xor esi, esi - mov dword ptr [rbp-0x38], esi
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
nop jmp G_M13185_IG11
- ;; size=46 bbWeight=1 PerfScore 15.25
+ ;; size=45 bbWeight=1 PerfScore 15.25
G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp gword ptr [rbp-0x18], 0
+ cmp gword ptr [rbp-0x10], 0
je SHORT G_M13185_IG06
- xor esi, esi - cmp gword ptr [rbp-0x28], 0 - sete sil - mov dword ptr [rbp-0x44], esi
+ xor eax, eax + cmp gword ptr [rbp-0x20], 0 + sete al + mov dword ptr [rbp-0x3C], eax
jmp SHORT G_M13185_IG07
- ;; size=23 bbWeight=1 PerfScore 9.25
+ ;; size=22 bbWeight=1 PerfScore 9.25
G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov dword ptr [rbp-0x44], 1
+ mov dword ptr [rbp-0x3C], 1
;; size=7 bbWeight=1 PerfScore 1.00 G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov esi, dword ptr [rbp-0x44] - movzx rsi, sil - mov dword ptr [rbp-0x3C], esi - cmp dword ptr [rbp-0x3C], 0
+ mov eax, dword ptr [rbp-0x3C] + movzx rax, al + mov dword ptr [rbp-0x34], eax + cmp dword ptr [rbp-0x34], 0
je SHORT G_M13185_IG08 nop
- lea rsi, [rbp-0x20]
+ lea rsi, [rbp-0x18]
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText] call CORINFO_HELP_BOX ; gcrRegs +[rax] ; gcr arg pop 0
- mov rbx, rax - ; gcrRegs +[rbx] - lea rsi, [rbp-0x30]
+ mov gword ptr [rbp-0x68], rax + lea rsi, [rbp-0x28]
mov rdi, 0xD1FFAB1E ; System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText] call CORINFO_HELP_BOX ; gcr arg pop 0
- xor edi, edi - cmp rbx, rax - sete dil - mov dword ptr [rbp-0x38], edi
+ cmp gword ptr [rbp-0x68], rax + sete al + ; gcrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x30], eax
nop jmp G_M13185_IG11
- ;; size=76 bbWeight=1 PerfScore 14.00
+ ;; size=77 bbWeight=1 PerfScore 16.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax rbx] - mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
- mov rax, gword ptr [rbp-0x18]
+ mov rax, gword ptr [rbp-0x10]
; gcrRegs +[rax] mov rax, qword ptr [rax] ; gcrRegs -[rax] @@ -119,71 +119,70 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [rax+0x20]<unknown method> ; gcrRegs -[rdi] +[rax] ; gcr arg pop 0
+ mov gword ptr [rbp-0x48], rax + mov rdi, gword ptr [rbp-0x20] + ; gcrRegs +[rdi] + mov rax, gword ptr [rbp-0x20] + mov rax, qword ptr [rax] + ; gcrRegs -[rax] + mov rax, qword ptr [rax+0x48] + call [rax+0x20]<unknown method> + ; gcrRegs -[rdi] +[rax] + ; gcr arg pop 0
mov gword ptr [rbp-0x50], rax
- mov rdi, gword ptr [rbp-0x28] - ; gcrRegs +[rdi] - mov rax, gword ptr [rbp-0x28] - mov rax, qword ptr [rax] - ; gcrRegs -[rax] - mov rax, qword ptr [rax+0x48] - call [rax+0x20]<unknown method> - ; gcrRegs -[rdi] +[rax] - ; gcr arg pop 0 - mov gword ptr [rbp-0x58], rax - mov rdi, gword ptr [rbp-0x50] - ; gcrRegs +[rdi] - cmp rdi, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x48] + cmp rax, gword ptr [rbp-0x50]
jne SHORT G_M13185_IG09
- mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10] + ; gcrRegs +[rdi]
cmp dword ptr [rdi], edi call [<unknown method>] ; gcrRegs -[rax rdi] ; gcr arg pop 0
- mov dword ptr [rbp-0x60], eax - mov rdi, gword ptr [rbp-0x28]
+ mov dword ptr [rbp-0x58], eax + mov rdi, gword ptr [rbp-0x20]
; gcrRegs +[rdi] cmp dword ptr [rdi], edi call [<unknown method>] ; gcrRegs -[rdi] ; gcr arg pop 0
- mov dword ptr [rbp-0x64], eax - mov edi, dword ptr [rbp-0x60] - cmp edi, dword ptr [rbp-0x64]
+ mov dword ptr [rbp-0x5C], eax + mov eax, dword ptr [rbp-0x58] + cmp eax, dword ptr [rbp-0x5C]
jne SHORT G_M13185_IG09
- mov rdi, gword ptr [rbp-0x18]
+ mov rdi, gword ptr [rbp-0x10]
; gcrRegs +[rdi]
- mov rsi, gword ptr [rbp-0x28]
+ mov rsi, gword ptr [rbp-0x20]
; gcrRegs +[rsi] cmp dword ptr [rdi], edi call [<unknown method>] ; gcrRegs -[rsi rdi] ; gcr arg pop 0
- mov dword ptr [rbp-0x68], eax - mov eax, dword ptr [rbp-0x68] - mov dword ptr [rbp-0x5C], eax
+ mov dword ptr [rbp-0x60], eax + mov eax, dword ptr [rbp-0x60] + mov dword ptr [rbp-0x54], eax
jmp SHORT G_M13185_IG10 ;; size=119 bbWeight=1 PerfScore 57.00 G_M13185_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref xor eax, eax
- mov dword ptr [rbp-0x5C], eax
+ mov dword ptr [rbp-0x54], eax
;; size=5 bbWeight=1 PerfScore 1.25 G_M13185_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, dword ptr [rbp-0x5C]
+ mov eax, dword ptr [rbp-0x54]
movzx rax, al
- mov dword ptr [rbp-0x38], eax
...

+35 (+0.95%) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)

@@ -158,14 +158,12 @@ G_M26197_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 ;; size=5 bbWeight=0.50 PerfScore 0.50 G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, gword ptr [rbp-0x20] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x38], rdi
+ mov rax, gword ptr [rbp-0x20] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x38], rax
nop mov rdi, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rdi]
call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x160], rax mov rdi, gword ptr [rbp-0x160] @@ -173,28 +171,28 @@ G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rax rdi] ; gcr arg pop 0
- mov rdi, gword ptr [rbp-0x160] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x30], rdi - xor edi, edi - ; gcrRegs -[rdi] - mov dword ptr [rbp-0x3C], edi
+ mov rax, gword ptr [rbp-0x160] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x30], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x3C], eax
nop jmp G_M26197_IG69 ;; size=66 bbWeight=1 PerfScore 14.00 G_M26197_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [rbp-0x10] - mov rdi, qword ptr [rdi+0x38] - mov rdi, qword ptr [rdi] - cmp qword ptr [rdi+0x158], 0
+ mov rax, qword ptr [rbp-0x10] + mov rax, qword ptr [rax+0x38] + mov rax, qword ptr [rax] + cmp qword ptr [rax+0x158], 0
je SHORT G_M26197_IG07 ;; size=21 bbWeight=1 PerfScore 9.00 G_M26197_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [rbp-0x10] - mov rdi, qword ptr [rdi+0x38] - mov rdi, qword ptr [rdi] - mov rdi, qword ptr [rdi+0x158] - mov qword ptr [rbp-0x170], rdi
+ mov rax, qword ptr [rbp-0x10] + mov rax, qword ptr [rax+0x38] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x158] + mov qword ptr [rbp-0x170], rax
jmp SHORT G_M26197_IG08 ;; size=27 bbWeight=0.80 PerfScore 8.00 G_M26197_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -215,36 +213,36 @@ G_M26197_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rax rdi] ; gcr arg pop 0
- mov rdi, gword ptr [rbp-0x168] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x48], rdi
+ mov rax, gword ptr [rbp-0x168] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x48], rax
nop
- mov rdi, gword ptr [rbp-0x48] - mov gword ptr [rbp-0x178], rdi - mov rdi, gword ptr [rbp-0x28] - mov eax, dword ptr [rbp-0x3C] - cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x48] + mov gword ptr [rbp-0x178], rax + mov rax, gword ptr [rbp-0x28] + mov ecx, dword ptr [rbp-0x3C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG09 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0 ;; size=72 bbWeight=1 PerfScore 18.25
-G_M26197_IG09: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rdi] - mov ecx, eax - imul rcx, rcx, 64 - lea rdi, bword ptr [rdi+rcx+0x10] - ; gcrRegs -[rdi]
+G_M26197_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx + imul rdx, rdx, 64 + lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rdi, rax
; byrRegs +[rdi] call [<unknown method>] ; gcrRegs +[rax]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0 mov gword ptr [rbp-0x180], rax
- mov rdi, gword ptr [rbp-0x178] - ; gcrRegs +[rdi] - lea rdi, bword ptr [rdi+0x08] - ; gcrRegs -[rdi]
+ mov rax, gword ptr [rbp-0x178] + lea rdi, bword ptr [rax+0x08]
; byrRegs +[rdi] mov rsi, gword ptr [rbp-0x180] ; gcrRegs +[rsi] @@ -260,26 +258,26 @@ G_M26197_IG09: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rsi rdi] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x188], rax
- mov rdi, gword ptr [rbp-0x28] - ; gcrRegs +[rdi] - mov eax, dword ptr [rbp-0x3C] - ; gcrRegs -[rax] - cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x28] + mov ecx, dword ptr [rbp-0x3C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG10 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=93 bbWeight=1 PerfScore 26.00 -G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rdi] - mov ecx, eax - imul rcx, rcx, 64 - lea rdi, bword ptr [rdi+rcx+0x10] - ; gcrRegs -[rdi]
+ ;; size=96 bbWeight=1 PerfScore 26.25 +G_M26197_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx + imul rdx, rdx, 64 + lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rdi, rax
; byrRegs +[rdi] call [<unknown method>] ; gcrRegs +[rax]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0 mov gword ptr [rbp-0x190], rax mov rdi, gword ptr [rbp-0x188] @@ -313,14 +311,13 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdx rsi] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x1A8], rax
- mov rdi, gword ptr [rbp-0x1A8] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x50], rdi - xor edi, edi - ; gcrRegs -[rdi]
+ mov rax, gword ptr [rbp-0x1A8] + mov gword ptr [rbp-0x50], rax + xor eax, eax + ; gcrRegs -[rax]
cmp gword ptr [rbp-0x50], 0
- setne dil - mov dword ptr [rbp-0x5C], edi
+ setne al + mov dword ptr [rbp-0x5C], eax
cmp dword ptr [rbp-0x5C], 0 je G_M26197_IG25 nop @@ -328,30 +325,30 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs +[rdi] cmp dword ptr [rdi], edi call <unknown method>
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rdi] +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x378], rax
- mov rdi, gword ptr [rbp-0x378] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x68], rdi - mov rdi, gword ptr [rbp-0x28] - mov eax, dword ptr [rbp-0x3C] - ; gcrRegs -[rax] - cmp eax, dword ptr [rdi+0x08]
+ mov rax, gword ptr [rbp-0x378] + mov gword ptr [rbp-0x68], rax + mov rax, gword ptr [rbp-0x28] + mov ecx, dword ptr [rbp-0x3C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG11 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rdi]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=219 bbWeight=1 PerfScore 54.75 -G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rdi] - mov ecx, eax - imul rcx, rcx, 64 - lea rdi, bword ptr [rdi+rcx+0x10] - ; gcrRegs -[rdi]
+ ;; size=221 bbWeight=1 PerfScore 55.00 +G_M26197_IG11: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx + imul rdx, rdx, 64 + lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rdi, rax
; byrRegs +[rdi] call [<unknown method>]
- ; byrRegs -[rdi]
+ ; byrRegs -[rax rdi]
; gcr arg pop 0 mov dword ptr [rbp-0x37C], eax cmp dword ptr [rbp-0x37C], 0 @@ -367,11 +364,9 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr ; gcrRegs -[rdi] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x440], rax
- mov rdi, gword ptr [rbp-0x440] - ; gcrRegs +[rdi] - mov gword ptr [rbp-0x78], rdi
+ mov rax, gword ptr [rbp-0x440] + mov gword ptr [rbp-0x78], rax
lea rdi, [rbp-0x78]
- ; gcrRegs -[rdi]
mov rsi, 0xD1FFAB1E ; System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor] call [<unknown method>] ; gcrRegs -[rax] @@ -379,7 +374,7 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0080 {rdi}, byrefRegs=0000 {}, byr mov dword ptr [rbp-0x444], eax cmp dword ptr [rbp-0x444], 1 je SHORT G_M26197_IG13
- ;; size=103 bbWeight=1 PerfScore 30.00
+ ;; size=106 bbWeight=1 PerfScore 30.25
G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ...

realworld.run.linux.x64.checked.mch

+0 (0.00%) : 32245.dasm - BenchmarkDotNet.Autogenerated.Runnable1:ForDisassemblyDiagnoser_():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]:this (MinOpts)

@@ -17,13 +17,14 @@ G_M30690_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=14 bbWeight=1 PerfScore 2.75 G_M30690_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x58], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x58], 11
jne SHORT G_M30690_IG04 mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop ;; size=21 bbWeight=1 PerfScore 9.25 G_M30690_IG03: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 33069.dasm - BenchmarkDotNet.Autogenerated.Runnable2:ForDisassemblyDiagnoser_():System.Collections.ObjectModel.Collection`1[System.Management.Automation.PSObject]:this (MinOpts)

@@ -17,13 +17,14 @@ G_M22177_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=14 bbWeight=1 PerfScore 2.75 G_M22177_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x58], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x58], 11
jne SHORT G_M22177_IG04 mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop ;; size=21 bbWeight=1 PerfScore 9.25 G_M22177_IG03: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 13074.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x08], rdi ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x18], rdi
+ xor eax, eax + mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-0x18]

+0 (0.00%) : 32244.dasm - BenchmarkDotNet.Autogenerated.Runnable1:TrickTheJIT_():this (MinOpts)

@@ -40,12 +40,13 @@ G_M31200_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rax+0x48] call [rax+0x30]<unknown method> ; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov dword ptr [rcx+0x58], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi]
- mov dword ptr [rdi+0x58], eax - mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop ;; size=77 bbWeight=1 PerfScore 22.25 G_M31200_IG03: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 32964.dasm - BenchmarkDotNet.Autogenerated.Runnable0:ForDisassemblyDiagnoser_():System.Management.Automation.Language.Ast:this (MinOpts)

@@ -17,13 +17,14 @@ G_M58970_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { mov gword ptr [rbp-0x08], rdi ;; size=14 bbWeight=1 PerfScore 2.75 G_M58970_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, gword ptr [rbp-0x08] - ; gcrRegs +[rdi] - cmp dword ptr [rdi+0x40], 11
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x40], 11
jne SHORT G_M58970_IG04 mov rdi, gword ptr [rbp-0x08]
+ ; gcrRegs +[rdi]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rdi]
nop ;; size=21 bbWeight=1 PerfScore 9.25 G_M58970_IG03: ; bbWeight=1, epilog, nogc, extend

+0 (0.00%) : 33068.dasm - BenchmarkDotNet.Autogenerated.Runnable2:TrickTheJIT_():this (MinOpts)

@@ -40,12 +40,13 @@ G_M57219_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, qword ptr [rax+0x48] call [rax+0x30]<unknown method> ; gcrRegs -[rdi]
+ mov rcx, gword ptr [rbp-0x08] + ; gcrRegs +[rcx] + mov dword ptr [rcx+0x58], eax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi]
- mov dword ptr [rdi+0x58], eax - mov rdi, gword ptr [rbp-0x08]
call [<unknown method>]
- ; gcrRegs -[rdi] +[rax]
+ ; gcrRegs -[rcx rdi] +[rax]
nop ;; size=77 bbWeight=1 PerfScore 22.25 G_M57219_IG03: ; bbWeight=1, epilog, nogc, extend

smoke_tests.nativeaot.linux.x64.checked.mch

+0 (0.00%) : 19493.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)

@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movaps xmmword ptr [rbp-0x10], xmm8 ;; size=34 bbWeight=1 PerfScore 10.08 G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x08]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x10]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x10]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x18]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x18]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x20]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x20]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi

+0 (0.00%) : 20294.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)

@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movaps xmmword ptr [rbp-0x10], xmm8 ;; size=34 bbWeight=1 PerfScore 10.08 G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x08]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x08]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x10]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x10]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x18]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x18]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi @@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rdi] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, qword ptr [(reloc)] - mov rdi, gword ptr [rdi+0x20]
+ mov rax, qword ptr [(reloc)] + mov rdi, gword ptr [rax+0x20]
; gcrRegs +[rdi] lea r10, [(reloc)] ; function address xor rsi, rsi

+0 (0.00%) : 20656.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -22,8 +22,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x08], rdi ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor edi, edi - mov gword ptr [rbp-0x18], rdi
+ xor eax, eax + mov gword ptr [rbp-0x18], rax
mov rdi, gword ptr [rbp-0x08] ; gcrRegs +[rdi] mov rdx, gword ptr [rbp-0x18]

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.linux.x64.checked.mch 3,140 7 2 3,131 -7 +2
benchmarks.run_pgo.linux.x64.checked.mch 38,674 8,237 1,677 28,760 -24,140 +5,892
benchmarks.run_tiered.linux.x64.checked.mch 26,296 5,424 1,155 19,717 -15,622 +4,240
coreclr_tests.run.linux.x64.checked.mch 279,225 94,263 26,795 158,167 -523,013 +285,884
libraries.crossgen2.linux.x64.checked.mch 8 3 1 4 -5 +1
libraries.pmi.linux.x64.checked.mch 2 1 1 0 -14 +1
libraries_tests.run.linux.x64.Release.mch 326,263 62,571 8,941 254,751 -216,201 +52,919
librariestestsnotieredcompilation.run.linux.x64.Release.mch 13,430 9,202 8 4,220 -57,773 +3,529
realworld.run.linux.x64.checked.mch 9 1 0 8 -1,026 +0
smoke_tests.nativeaot.linux.x64.checked.mch 3 0 0 3 -0 +0
687,050 179,709 38,580 468,761 -837,801 +352,468

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.x64.checked.mch 42,533 3,142 39,391 324 (0.76%) 324 (0.76%)
benchmarks.run_pgo.linux.x64.checked.mch 158,221 60,171 98,050 156 (0.10%) 156 (0.10%)
benchmarks.run_tiered.linux.x64.checked.mch 56,416 42,280 14,136 84 (0.15%) 84 (0.15%)
coreclr_tests.run.linux.x64.checked.mch 596,312 354,685 241,627 459 (0.08%) 459 (0.08%)
libraries.crossgen2.linux.x64.checked.mch 234,032 15 234,017 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.x64.checked.mch 294,182 6 294,176 2,052 (0.69%) 2,052 (0.69%)
libraries_tests.run.linux.x64.Release.mch 760,250 495,575 264,675 1,402 (0.18%) 1,402 (0.18%)
librariestestsnotieredcompilation.run.linux.x64.Release.mch 303,249 21,873 281,376 2,099 (0.69%) 2,099 (0.69%)
realworld.run.linux.x64.checked.mch 32,728 9 32,719 341 (1.03%) 341 (1.03%)
smoke_tests.nativeaot.linux.x64.checked.mch 27,417 10 27,407 5 (0.02%) 5 (0.02%)
2,505,340 977,766 1,527,574 6,922 (0.28%) 6,922 (0.28%)

jit-analyze output

benchmarks.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

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

Detail diffs



Top file regressions (bytes):
           1 : 11777.dasm (0.61 % of base)
           1 : 1542.dasm (0.61 % of base)

Top file improvements (bytes):
          -1 : 37053.dasm (-1.18 % of base)
          -1 : 40563.dasm (-1.18 % of base)
          -1 : 21695.dasm (-1.18 % of base)
          -1 : 22682.dasm (-1.18 % of base)
          -1 : 26264.dasm (-1.18 % of base)
          -1 : 36837.dasm (-1.18 % of base)
          -1 : 41665.dasm (-1.18 % of base)

9 total files with Code Size differences (7 improved, 2 regressed), 51 unchanged.

Top method regressions (bytes):
           1 (0.61 % of base) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
           1 (0.61 % of base) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (bytes):
          -1 (-1.18 % of base) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 40563.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 21695.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
          -1 (-1.18 % of base) : 22682.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
          -1 (-1.18 % of base) : 26264.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)

Top method regressions (percentages):
           1 (0.61 % of base) : 11777.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
           1 (0.61 % of base) : 1542.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (percentages):
          -1 (-1.18 % of base) : 37053.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 40563.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 36837.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 41665.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ubyte[]:this (MinOpts)
          -1 (-1.18 % of base) : 21695.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
          -1 (-1.18 % of base) : 22682.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)
          -1 (-1.18 % of base) : 26264.dasm - BenchmarkDotNet.Autogenerated.Runnable_153:__ForDisassemblyDiagnoser__():ushort[]:this (MinOpts)


benchmarks.run_pgo.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 70126965 (overridden on cmd)
Total bytes of diff: 70108717 (overridden on cmd)
Total bytes of delta: -18248 (-0.03 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          90 : 8107.dasm (2.34 % of base)
          90 : 8585.dasm (2.34 % of base)
          57 : 83189.dasm (0.24 % of base)
          50 : 56140.dasm (1.81 % of base)
          47 : 21911.dasm (1.06 % of base)
          45 : 39975.dasm (2.19 % of base)
          35 : 21878.dasm (0.64 % of base)
          35 : 65208.dasm (0.64 % of base)
          34 : 73847.dasm (1.05 % of base)
          29 : 9786.dasm (1.72 % of base)
          28 : 88416.dasm (0.46 % of base)
          26 : 69181.dasm (1.88 % of base)
          26 : 11956.dasm (0.89 % of base)
          25 : 34604.dasm (3.74 % of base)
          23 : 84959.dasm (1.28 % of base)
          22 : 40577.dasm (2.60 % of base)
          22 : 13833.dasm (2.60 % of base)
          22 : 26617.dasm (18.33 % of base)
          21 : 4559.dasm (3.78 % of base)
          21 : 6326.dasm (0.20 % of base)

Top file improvements (bytes):
        -127 : 15875.dasm (-1.16 % of base)
         -99 : 66289.dasm (-4.55 % of base)
         -99 : 66315.dasm (-4.55 % of base)
         -97 : 86380.dasm (-0.86 % of base)
         -97 : 91780.dasm (-0.42 % of base)
         -76 : 1362.dasm (-3.16 % of base)
         -76 : 3489.dasm (-3.16 % of base)
         -72 : 1813.dasm (-0.72 % of base)
         -72 : 84246.dasm (-0.71 % of base)
         -66 : 63145.dasm (-0.76 % of base)
         -57 : 56457.dasm (-2.31 % of base)
         -57 : 59995.dasm (-3.08 % of base)
         -57 : 56444.dasm (-2.31 % of base)
         -57 : 59980.dasm (-3.08 % of base)
         -56 : 34955.dasm (-0.87 % of base)
         -55 : 24596.dasm (-0.85 % of base)
         -53 : 1618.dasm (-1.42 % of base)
         -53 : 2766.dasm (-1.42 % of base)
         -53 : 858.dasm (-2.49 % of base)
         -53 : 5849.dasm (-2.49 % of base)

88 total files with Code Size differences (49 improved, 39 regressed), 20 unchanged.

Top method regressions (bytes):
          90 (2.34 % of base) : 8107.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
          90 (2.34 % of base) : 8585.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
          57 (0.24 % of base) : 83189.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
          50 (1.81 % of base) : 56140.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Instrumented Tier0)
          47 (1.06 % of base) : 21911.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this (Instrumented Tier0)
          45 (2.19 % of base) : 39975.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
          35 (0.64 % of base) : 21878.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Instrumented Tier0)
          35 (0.64 % of base) : 65208.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Instrumented Tier0)
          34 (1.05 % of base) : 73847.dasm - Neural:read_data_file():this (Instrumented Tier0)
          29 (1.72 % of base) : 9786.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
          28 (0.46 % of base) : 88416.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
          26 (1.88 % of base) : 69181.dasm - NeuralJagged:Init() (Instrumented Tier0)
          26 (0.89 % of base) : 11956.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
          25 (3.74 % of base) : 34604.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
          23 (1.28 % of base) : 84959.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
          22 (2.60 % of base) : 40577.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
          22 (2.60 % of base) : 13833.dasm - System.Linq.Lookup`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this (Instrumented Tier0)
          22 (18.33 % of base) : 26617.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          21 (0.20 % of base) : 6326.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
          21 (3.78 % of base) : 4559.dasm - System.Globalization.OrdinalCasing:ToUpperOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Instrumented Tier0)

Top method improvements (bytes):
        -127 (-1.16 % of base) : 15875.dasm - System.Formats.Asn1.WellKnownOids:GetValue(System.ReadOnlySpan`1[ubyte]):System.String (Instrumented Tier0)
         -99 (-4.55 % of base) : 66289.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
         -99 (-4.55 % of base) : 66315.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
         -97 (-0.42 % of base) : 91780.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Instrumented Tier0)
         -97 (-0.86 % of base) : 86380.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier0)
         -76 (-3.16 % of base) : 1362.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)
         -76 (-3.16 % of base) : 3489.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)
         -72 (-0.71 % of base) : 84246.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Instrumented Tier0)
         -72 (-0.72 % of base) : 1813.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
         -66 (-0.76 % of base) : 63145.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Instrumented Tier0)
         -57 (-2.31 % of base) : 56457.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Instrumented Tier0)
         -57 (-2.31 % of base) : 56444.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Instrumented Tier0)
         -57 (-3.08 % of base) : 59995.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
         -57 (-3.08 % of base) : 59980.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
         -56 (-0.87 % of base) : 34955.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (Instrumented Tier0)
         -55 (-0.85 % of base) : 24596.dasm - Utf8Json.Formatters.ISO8601DateTimeOffsetFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTimeOffset:this (Instrumented Tier0)
         -53 (-2.49 % of base) : 858.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Instrumented Tier0)
         -53 (-2.49 % of base) : 5849.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Instrumented Tier0)
         -53 (-1.42 % of base) : 1618.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Instrumented Tier0)
         -53 (-1.42 % of base) : 2766.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Instrumented Tier0)

Top method regressions (percentages):
          16 (21.62 % of base) : 81439.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
          12 (21.43 % of base) : 89076.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 84839.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          11 (20.75 % of base) : 1028.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          22 (18.33 % of base) : 26617.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          12 (10.26 % of base) : 82935.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
          12 (8.76 % of base) : 82939.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
          16 (8.74 % of base) : 60199.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Instrumented Tier0)
           9 (8.65 % of base) : 57684.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
           9 (8.33 % of base) : 42823.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
          16 (8.29 % of base) : 64922.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Instrumented Tier0)
           9 (8.11 % of base) : 117668.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanAllBenchmark():ubyte:this (Tier0)
          14 (7.65 % of base) : 16582.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:TryStat(System.String,int,byref):ubyte (Tier0)
          15 (7.39 % of base) : 84267.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:get_HasCodeAnalysisEmbeddedAttribute():ubyte:this (Tier0)
           6 (7.32 % of base) : 19585.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
          11 (7.14 % of base) : 26010.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
          12 (6.90 % of base) : 57030.dasm - System.Tests.Perf_HashCode:Combine_6():int:this (Instrumented Tier0)
           3 (6.25 % of base) : 4237.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Instrumented Tier0)
           3 (6.25 % of base) : 2294.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
          10 (6.02 % of base) : 53540.dasm - System.Tests.Perf_HashCode:Combine_5():int:this (Instrumented Tier0)

Top method improvements (percentages):
         -15 (-9.74 % of base) : 27751.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
          -6 (-8.96 % of base) : 110171.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Instrumented Tier0)
          -6 (-8.96 % of base) : 4208.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
         -51 (-6.85 % of base) : 3283.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
          -5 (-6.25 % of base) : 8464.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Instrumented Tier0)
          -5 (-6.25 % of base) : 7929.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
         -10 (-6.13 % of base) : 65197.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Instrumented Tier0)
         -10 (-6.13 % of base) : 65170.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
          -3 (-6.12 % of base) : 88723.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Instrumented Tier0)
          -3 (-6.12 % of base) : 83766.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
          -5 (-6.02 % of base) : 8490.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Instrumented Tier0)
          -5 (-6.02 % of base) : 7930.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Tier0)
          -3 (-5.88 % of base) : 92433.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Instrumented Tier0)
          -3 (-5.88 % of base) : 88391.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Tier0)
          -4 (-5.88 % of base) : 8492.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Instrumented Tier0)
          -4 (-5.88 % of base) : 7950.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Tier0)
          -5 (-5.81 % of base) : 12697.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Instrumented Tier0)
          -5 (-5.81 % of base) : 3530.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Tier0)
          -4 (-5.56 % of base) : 1236.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.Reflection.Assembly,ubyte,ubyte):System.Type (Tier0)
         -10 (-5.49 % of base) : 53900.dasm - System.UriHelper:UnescapeString(System.String,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)


benchmarks.run_tiered.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15918176 (overridden on cmd)
Total bytes of diff: 15906794 (overridden on cmd)
Total bytes of delta: -11382 (-0.07 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
          90 : 8634.dasm (2.56 % of base)
          57 : 37414.dasm (0.24 % of base)
          50 : 29401.dasm (2.81 % of base)
          47 : 12092.dasm (1.32 % of base)
          45 : 21870.dasm (2.19 % of base)
          34 : 33229.dasm (1.08 % of base)
          31 : 3503.dasm (0.39 % of base)
          29 : 5658.dasm (1.72 % of base)
          28 : 42208.dasm (0.46 % of base)
          26 : 33005.dasm (1.97 % of base)
          25 : 25852.dasm (4.11 % of base)
          24 : 11731.dasm (0.58 % of base)
          22 : 11662.dasm (18.33 % of base)
          22 : 6926.dasm (2.97 % of base)
          21 : 4960.dasm (4.58 % of base)
          21 : 6992.dasm (3.46 % of base)
          20 : 26030.dasm (2.09 % of base)
          19 : 12187.dasm (3.94 % of base)
          19 : 17323.dasm (5.23 % of base)
          18 : 33940.dasm (1.34 % of base)

Top file improvements (bytes):
         -97 : 40146.dasm (-0.86 % of base)
         -96 : 32072.dasm (-4.52 % of base)
         -79 : 1196.dasm (-4.03 % of base)
         -72 : 1580.dasm (-0.72 % of base)
         -62 : 30582.dasm (-0.83 % of base)
         -58 : 1410.dasm (-2.06 % of base)
         -56 : 24021.dasm (-0.98 % of base)
         -55 : 17350.dasm (-0.95 % of base)
         -54 : 29813.dasm (-2.83 % of base)
         -54 : 30484.dasm (-4.14 % of base)
         -53 : 763.dasm (-3.02 % of base)
         -52 : 27726.dasm (-4.71 % of base)
         -51 : 2811.dasm (-6.85 % of base)
         -49 : 749.dasm (-1.24 % of base)
         -47 : 40531.dasm (-0.88 % of base)
         -42 : 18947.dasm (-0.95 % of base)
         -42 : 13122.dasm (-0.91 % of base)
         -36 : 8157.dasm (-0.90 % of base)
         -35 : 2673.dasm (-0.93 % of base)
         -34 : 35929.dasm (-2.51 % of base)

77 total files with Code Size differences (38 improved, 39 regressed), 20 unchanged.

Top method regressions (bytes):
          90 (2.56 % of base) : 8634.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier0)
          57 (0.24 % of base) : 37414.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
          50 (2.81 % of base) : 29401.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Tier0)
          47 (1.32 % of base) : 12092.dasm - System.Uri:GetUriPartsFromUserString(int):System.String:this (Tier0)
          45 (2.19 % of base) : 21870.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
          34 (1.08 % of base) : 33229.dasm - Neural:read_data_file():this (Tier0)
          31 (0.39 % of base) : 3503.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
          29 (1.72 % of base) : 5658.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
          28 (0.46 % of base) : 42208.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
          26 (1.97 % of base) : 33005.dasm - NeuralJagged:Init() (Tier0)
          25 (4.11 % of base) : 25852.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
          24 (0.58 % of base) : 11731.dasm - System.Uri:CheckAuthorityHelper(ulong,int,int,byref,byref,System.UriParser,byref):int:this (Tier0)
          22 (2.97 % of base) : 6926.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Tier0)
          22 (18.33 % of base) : 11662.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          21 (4.58 % of base) : 4960.dasm - System.Globalization.OrdinalCasing:ToUpperOrdinal(System.ReadOnlySpan`1[ushort],System.Span`1[ushort]) (Tier0)
          21 (3.46 % of base) : 6992.dasm - System.Linq.Lookup`2[int,System.__Canon]:GetGrouping(int,ubyte):System.Linq.Grouping`2[int,System.__Canon]:this (Tier0)
          20 (2.09 % of base) : 26030.dasm - System.Runtime.Serialization.Json.XmlJsonWriter:WriteEscapedJsonString(System.String):this (Tier0)
          19 (3.94 % of base) : 12187.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
          19 (5.23 % of base) : 17323.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          18 (1.34 % of base) : 33940.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier0)

Top method improvements (bytes):
         -97 (-0.86 % of base) : 40146.dasm - Microsoft.CodeAnalysis.CSharp.Binder:FoldNeverOverflowBinaryOperators(int,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.ConstantValue):System.Object (Tier0)
         -96 (-4.52 % of base) : 32072.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Tier0)
         -79 (-4.03 % of base) : 1196.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier0)
         -72 (-0.72 % of base) : 1580.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
         -62 (-0.83 % of base) : 30582.dasm - System.Net.WebSockets.ManagedWebSocket+<ReceiveAsyncPrivate>d__64`1[System.Net.WebSockets.ValueWebSocketReceiveResult]:MoveNext():this (Tier0)
         -58 (-2.06 % of base) : 1410.dasm - System.Text.Unicode.Utf8Utility:GetPointerToFirstInvalidByte(ulong,int,byref,byref):ulong (Tier0)
         -56 (-0.98 % of base) : 24021.dasm - Utf8Json.Formatters.ISO8601DateTimeFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTime:this (Tier0)
         -55 (-0.95 % of base) : 17350.dasm - Utf8Json.Formatters.ISO8601DateTimeOffsetFormatter:Deserialize(byref,Utf8Json.IJsonFormatterResolver):System.DateTimeOffset:this (Tier0)
         -54 (-2.83 % of base) : 29813.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Tier0)
         -54 (-4.14 % of base) : 30484.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0)
         -53 (-3.02 % of base) : 763.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,int):int (Tier0)
         -52 (-4.71 % of base) : 27726.dasm - System.ParseNumbers:StringToLong(System.ReadOnlySpan`1[ushort],int,int,byref):long (Tier0)
         -51 (-6.85 % of base) : 2811.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
         -49 (-1.24 % of base) : 749.dasm - System.Text.Unicode.Utf8Utility:TranscodeToUtf16(ulong,int,ulong,int,byref,byref):int (Tier0)
         -47 (-0.88 % of base) : 40531.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
         -42 (-0.91 % of base) : 13122.dasm - Newtonsoft.Json.JsonTextReader:ParseReadNumber(int,ushort,int):this (Tier0)
         -42 (-0.95 % of base) : 18947.dasm - System.Text.RegularExpressions.RegexWriter:EmitFragment(ubyte,System.Text.RegularExpressions.RegexNode,int):this (Tier0)
         -36 (-0.90 % of base) : 8157.dasm - System.Net.Security.SslStream+<ForceAuthenticationAsync>d__158`1[System.Net.Security.AsyncReadWriteAdapter]:MoveNext():this (Tier0)
         -35 (-0.93 % of base) : 2673.dasm - System.Text.UnicodeEncoding:GetBytes(ulong,int,ulong,int,System.Text.EncoderNLS):int:this (Tier0)
         -34 (-2.51 % of base) : 35929.dasm - System.Buffers.Text.Utf8Parser:TryParseGuidCore(System.ReadOnlySpan`1[ubyte],byref,byref,int):ubyte (Tier0)

Top method regressions (percentages):
          16 (21.62 % of base) : 34315.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
          12 (21.43 % of base) : 38546.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          11 (20.75 % of base) : 922.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          22 (18.33 % of base) : 11662.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          12 (10.26 % of base) : 37160.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
          12 (8.76 % of base) : 37164.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
           9 (8.33 % of base) : 27172.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:LessThanAllBenchmark():ubyte:this (Tier0)
          12 (8.33 % of base) : 29567.dasm - System.Tests.Perf_HashCode:Combine_6():int:this (Tier0)
           9 (8.11 % of base) : 48465.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanAllBenchmark():ubyte:this (Tier0)
          12 (7.84 % of base) : 30551.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Tier0)
          14 (7.65 % of base) : 9650.dasm - System.Security.Cryptography.X509Certificates.OpenSslCachedSystemStoreProvider:TryStat(System.String,int,byref):ubyte (Tier0)
          15 (7.39 % of base) : 38096.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PENamedTypeSymbol:get_HasCodeAnalysisEmbeddedAttribute():ubyte:this (Tier0)
          12 (7.36 % of base) : 32057.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Tier0)
          10 (7.35 % of base) : 28768.dasm - System.Tests.Perf_HashCode:Combine_5():int:this (Tier0)
           6 (7.32 % of base) : 5946.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
          11 (7.14 % of base) : 15237.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
           3 (6.25 % of base) : 2064.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
           8 (6.25 % of base) : 28281.dasm - System.Tests.Perf_HashCode:Combine_4():int:this (Tier0)
           4 (5.97 % of base) : 47186.dasm - System.Threading.ReaderWriterLockSlim:SpinWait(int) (Tier0)
           9 (5.77 % of base) : 26727.dasm - System.Uri:get_IsFile():ubyte:this (Tier0)

Top method improvements (percentages):
         -15 (-9.74 % of base) : 19867.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
          -6 (-8.96 % of base) : 3945.dasm - System.Buffers.Binary.BinaryPrimitives:WriteInt16BigEndian(System.Span`1[ubyte],short) (Tier0)
         -51 (-6.85 % of base) : 2811.dasm - System.Reflection.Emit.SignatureHelper:InternalGetSignatureArray():ubyte[]:this (Tier0)
          -5 (-6.25 % of base) : 8446.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumProcessingWork(short):this (Tier0)
         -10 (-6.13 % of base) : 32153.dasm - System.UriHelper:UnescapeString(System.ReadOnlySpan`1[ushort],byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
          -3 (-6.12 % of base) : 37822.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
          -5 (-6.02 % of base) : 8448.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumExistingThreads(short):this (Tier0)
          -3 (-5.88 % of base) : 42178.dasm - System.Reflection.Metadata.BlobBuilder:WriteBoolean(ubyte):this (Tier0)
          -4 (-5.88 % of base) : 8477.dasm - System.Threading.LowLevelLifoSemaphoreBase+Counts:AddSignalCount(uint):this (Tier0)
          -5 (-5.81 % of base) : 3019.dasm - System.Threading.PortableThreadPool+ThreadCounts:set_NumThreadsGoal(short):this (Tier0)
          -4 (-5.56 % of base) : 1107.dasm - System.Reflection.TypeNameParser:GetType(System.String,System.Reflection.Assembly,ubyte,ubyte):System.Type (Tier0)
         -10 (-5.49 % of base) : 28892.dasm - System.UriHelper:UnescapeString(System.String,int,int,byref,ushort,ushort,ushort,int,System.UriParser,ubyte) (Tier0)
          -6 (-5.45 % of base) : 11024.dasm - System.Threading.SpinLock:Exit(ubyte):this (Tier0)
          -6 (-5.13 % of base) : 8991.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:ShouldPerformGateActivities(int,ubyte):ubyte:this (Tier0)
          -7 (-4.96 % of base) : 53031.dasm - System.Threading.TimerQueue:MoveTimerToCorrectList(System.Threading.TimerQueueTimer,ubyte):this (Tier0)
          -5 (-4.90 % of base) : 15063.dasm - System.Runtime.Serialization.DataContractSerializer:.ctor(System.Type,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
          -4 (-4.76 % of base) : 10450.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[int]:GetResult(short):int:this (Tier0)
         -52 (-4.71 % of base) : 27726.dasm - System.ParseNumbers:StringToLong(System.ReadOnlySpan`1[ushort],int,int,byref):long (Tier0)
          -4 (-4.71 % of base) : 14451.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[long]:GetResult(short):long:this (Tier0)
          -4 (-4.71 % of base) : 11018.dasm - System.Threading.Tasks.Sources.ManualResetValueTaskSourceCore`1[ubyte]:GetResult(short):ubyte:this (Tier0)


coreclr_tests.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 402653853 (overridden on cmd)
Total bytes of diff: 402416724 (overridden on cmd)
Total bytes of delta: -237129 (-0.06 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3477 : 211851.dasm (11.45 % of base)
        3477 : 211806.dasm (11.45 % of base)
        1346 : 6880.dasm (3.36 % of base)
        1323 : 291977.dasm (7.47 % of base)
        1256 : 6876.dasm (2.93 % of base)
        1235 : 6887.dasm (3.14 % of base)
        1034 : 6850.dasm (2.63 % of base)
        1030 : 6792.dasm (2.67 % of base)
         956 : 6846.dasm (2.28 % of base)
         956 : 6768.dasm (2.29 % of base)
         923 : 6859.dasm (2.39 % of base)
         919 : 6828.dasm (2.43 % of base)
         602 : 268637.dasm (0.61 % of base)
         534 : 263326.dasm (0.71 % of base)
         527 : 267640.dasm (0.54 % of base)
         527 : 268660.dasm (0.54 % of base)
         470 : 267472.dasm (0.49 % of base)
         422 : 260012.dasm (0.35 % of base)
         362 : 6834.dasm (0.87 % of base)
         357 : 26926.dasm (1.59 % of base)

Top file improvements (bytes):
      -65025 : 283883.dasm (-4.74 % of base)
      -65025 : 535340.dasm (-4.74 % of base)
      -10516 : 369875.dasm (-0.11 % of base)
       -3854 : 293948.dasm (-0.23 % of base)
       -3025 : 217604.dasm (-0.78 % of base)
       -1698 : 376122.dasm (-0.03 % of base)
       -1534 : 376117.dasm (-0.05 % of base)
        -870 : 172536.dasm (-0.88 % of base)
        -870 : 476539.dasm (-0.88 % of base)
        -409 : 258271.dasm (-2.48 % of base)
        -398 : 376134.dasm (-0.03 % of base)
        -363 : 256209.dasm (-0.68 % of base)
        -363 : 273022.dasm (-0.68 % of base)
        -329 : 263879.dasm (-0.84 % of base)
        -329 : 265682.dasm (-0.84 % of base)
        -290 : 258278.dasm (-1.63 % of base)
        -284 : 6503.dasm (-0.75 % of base)
        -284 : 6505.dasm (-0.75 % of base)
        -284 : 6509.dasm (-0.75 % of base)
        -284 : 6514.dasm (-0.75 % of base)

84 total files with Code Size differences (40 improved, 44 regressed), 20 unchanged.

Top method regressions (bytes):
        3477 (11.45 % of base) : 211851.dasm - <Module>:f():int (MinOpts)
        3477 (11.45 % of base) : 211806.dasm - <Module>:f():int (MinOpts)
        1346 (3.36 % of base) : 6880.dasm - lclfldsub:TestEntryPoint():int (Tier0)
        1323 (7.47 % of base) : 291977.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
        1256 (2.93 % of base) : 6876.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
        1235 (3.14 % of base) : 6887.dasm - lclfldsub:TestEntryPoint():int (Tier0)
        1034 (2.63 % of base) : 6850.dasm - lclfldmul:TestEntryPoint():int (Tier0)
        1030 (2.67 % of base) : 6792.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         956 (2.29 % of base) : 6768.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
         956 (2.28 % of base) : 6846.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
         923 (2.39 % of base) : 6859.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         919 (2.43 % of base) : 6828.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         602 (0.61 % of base) : 268637.dasm - u4div:TestEntryPoint():int (Tier0)
         534 (0.71 % of base) : 263326.dasm - Test_1000w1d.testout1:Func_0():int (MinOpts)
         527 (0.54 % of base) : 267640.dasm - i8div:TestEntryPoint():int (Tier0)
         527 (0.54 % of base) : 268660.dasm - u8div:TestEntryPoint():int (Tier0)
         470 (0.49 % of base) : 267472.dasm - i4div:TestEntryPoint():int (Tier0)
         422 (0.35 % of base) : 260012.dasm - u4div:TestEntryPoint():int (MinOpts)
         362 (0.87 % of base) : 6834.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         357 (1.59 % of base) : 26926.dasm - StrAccess2:TestEntryPoint():int (MinOpts)

Top method improvements (bytes):
      -65025 (-4.74 % of base) : 283883.dasm - Tests.ManyFields:.ctor():this (Tier0)
      -65025 (-4.74 % of base) : 535340.dasm - Tests.ManyFields:.ctor():this (Tier0-MinOpts)
      -10516 (-0.11 % of base) : 369875.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
       -3854 (-0.23 % of base) : 293948.dasm - NullableTest:And() (MinOpts)
       -3025 (-0.78 % of base) : 217604.dasm - CTest:TestEntryPoint():int (MinOpts)
       -1698 (-0.03 % of base) : 376122.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
       -1534 (-0.05 % of base) : 376117.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
        -870 (-0.88 % of base) : 172536.dasm - GitHub_17073:Test() (Tier0)
        -870 (-0.88 % of base) : 476539.dasm - GitHub_17073:Test() (Tier0-MinOpts)
        -409 (-2.48 % of base) : 258271.dasm - Test_i8flat_cs.test:TestEntryPoint():int (MinOpts)
        -398 (-0.03 % of base) : 376134.dasm - CseTest.Test_Main:TestEntryPoint():int (MinOpts)
        -363 (-0.68 % of base) : 256209.dasm - JitTest_chain_boxunbox_il.Test:Main():int (MinOpts)
        -363 (-0.68 % of base) : 273022.dasm - JitTest_chain_boxunbox_il.Test:Main():int (Tier0)
        -329 (-0.84 % of base) : 263879.dasm - byteMDArrTest:TestEntryPoint():int (MinOpts)
        -329 (-0.84 % of base) : 265682.dasm - sbyteMDArrTest:TestEntryPoint():int (MinOpts)
        -290 (-1.63 % of base) : 258278.dasm - Test_i8_cs.test:TestEntryPoint():int (MinOpts)
        -284 (-0.75 % of base) : 6503.dasm - Program:TestCase0001[EmptyStruct]() (MinOpts)
        -284 (-0.75 % of base) : 6505.dasm - Program:TestCase0003[EmptyStructGen`1[int]]() (MinOpts)
        -284 (-0.75 % of base) : 6509.dasm - Program:TestCase0007[NestedStructGen`1[System.Decimal]]() (MinOpts)
        -284 (-0.75 % of base) : 6514.dasm - Program:TestCase0014[ImplementOneInterfaceGen`1[EmptyStructGen`1[int]]]() (MinOpts)

Top method regressions (percentages):
          15 (22.73 % of base) : 360073.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
          12 (21.43 % of base) : 229250.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 224438.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          11 (20.75 % of base) : 381484.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          12 (19.05 % of base) : 212198.dasm - Program:TestRet2():ubyte (Tier0)
          12 (19.05 % of base) : 288533.dasm - Runtime_75832:Test(int) (Tier0)
          23 (18.40 % of base) : 256950.dasm - TestApp:test_2_3(float):float (Tier0)
          22 (18.33 % of base) : 234529.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          12 (18.18 % of base) : 212188.dasm - Program:TestCond3() (Tier0)
          23 (18.11 % of base) : 256683.dasm - TestApp:test_2_3(float):float (Tier0)
          20 (15.62 % of base) : 256877.dasm - TestApp:test_2_3(double):double (Tier0)
          20 (15.38 % of base) : 256590.dasm - TestApp:test_2_3(double):double (Tier0)
          20 (15.38 % of base) : 297067.dasm - TestApp:test_2_3(double):double (Tier0)
          25 (12.76 % of base) : 295591.dasm - ILGEN_0x64f58bd0:Method_0x1bb0(int,ulong,float,uint,uint):int (Tier0)
         104 (12.41 % of base) : 400347.dasm - Sensor:ValueMess1() (Tier0)
         223 (12.11 % of base) : 400310.dasm - Value0:CheckValues():ubyte:this (Tier0)
           9 (12.00 % of base) : 289802.dasm - GitHub_10714:Test():int (Tier0)
           3 (12.00 % of base) : 286159.dasm - X:G(S):int (Tier0)
           5 (11.90 % of base) : 200938.dasm - ModConst:I8_Mod_0(long):long (Tier0)
         223 (11.80 % of base) : 400312.dasm - Value1:CheckValues():ubyte:this (Tier0)

Top method improvements (percentages):
         -63 (-12.48 % of base) : 27154.dasm - TestNon2PowerStructs:TestComposite() (Tier0)
         -15 (-9.74 % of base) : 230953.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
          -6 (-8.70 % of base) : 391139.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Instrumented Tier0)
          -6 (-8.70 % of base) : 355481.dasm - ILCompiler.DependencyAnalysis.ObjectDataBuilder:EmitShort(short):this (Tier0)
          -7 (-8.64 % of base) : 287016.dasm - NormalizeTest.Program:ShortTest1(short,int):int (Tier0)
         -66 (-8.57 % of base) : 508583.dasm - (dynamicClass):ABIStress_TailCaller241(ABIStress.I128_1,ABIStress.S3U,ABIStress.S11U,ABIStress.S4P,float,long,ubyte,ABIStress.S8P,short,ABIStress.S4P,ABIStress.S7U,ABIStress.S8U,ABIStress.S14U,ABIStress.S3U,ABIStress.S5U,ABIStress.S16U,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S7U,ABIStress.S13U,ABIStress.S2U,ABIStress.S5U,ABIStress.S5U):int (MinOpts)
        -175 (-7.96 % of base) : 509120.dasm - (dynamicClass):ABIStress_TailCaller534(ABIStress.S32U,ABIStress.S15U,ubyte,ABIStress.S4P,int,ABIStress.S14U,short,short,ABIStress.S1P,ABIStress.S8P,System.Runtime.Intrinsics.Vector256`1[int]):int (MinOpts)
          -7 (-7.95 % of base) : 213064.dasm - P:TestByPtr(ulong):int (Tier0)
         -67 (-7.89 % of base) : 509138.dasm - (dynamicClass):ABIStress_TailCaller544(ABIStress.S14U,ABIStress.S16U,ABIStress.S7U,ABIStress.S16U,System.Runtime.Intrinsics.Vector256`1[int],ABIStress.S1P,System.Runtime.Intrinsics.Vector128`1[int],ABIStress.S13U,ABIStress.S8P,ABIStress.S4P,ABIStress.S2P,ABIStress.S13U,ABIStress.S8U,ABIStress.S4U,ABIStress.I128_1,ABIStress.S2U,ABIStress.S4U,ABIStress.S8U,long,ABIStress.S4P,ABIStress.S12U):int (MinOpts)
          -3 (-6.98 % of base) : 272729.dasm - InlineBool.Program:Not04(ubyte):ubyte (Tier0)
         -25 (-6.96 % of base) : 360262.dasm - Internal.IL.StackValue:CreateByRef(Internal.TypeSystem.TypeDesc,ubyte,ubyte):Internal.IL.StackValue (Tier0)
          -9 (-6.82 % of base) : 286554.dasm - Runtime_55143:M47(short):int (Tier0)
         -54 (-6.64 % of base) : 507945.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S8U,ABIStress.S3U,ABIStress.S1P,ABIStress.S4U,ABIStress.S16U,short,ABIStress.S2P,ABIStress.S8P,ABIStress.S4P,ABIStress.S3U,long,ABIStress.S11U,ABIStress.S11U,short,ABIStress.S3U,ABIStress.S2U,ABIStress.S17U):int (MinOpts)
         -13 (-6.50 % of base) : 296255.dasm - PerfNotIf:notIf(ubyte):ubyte:this (Instrumented Tier0)
         -93 (-6.41 % of base) : 24954.dasm - Microsoft.Diagnostics.Tracing.Session.TraceEventProviders:GetEventSourceGuidFromName(System.String):System.Guid (Instrumented Tier0)
          -6 (-6.19 % of base) : 205863.dasm - VectorTest+VectorUnusedTest`1[short]:VectorUnused(short,short):int (Tier0)
          -3 (-6.12 % of base) : 227046.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Instrumented Tier0)
          -3 (-6.12 % of base) : 223374.dasm - Roslyn.Utilities.Hash:Combine(ubyte,int):int (Tier0)
         -57 (-6.06 % of base) : 504647.dasm - (dynamicClass):IL_STUB_PInvoke(ABIStress.S4P,ABIStress.S5U,ABIStress.S3U,ubyte,ABIStress.S15U,ABIStress.Hfa2,ABIStress.S3U,ABIStress.S6U,ABIStress.S2U,ABIStress.S8P,long,short,ABIStress.S10U,ABIStress.S17U,ABIStress.S4P,ABIStress.S16U,short,ABIStress.S4P,ABIStress.S9U):int (MinOpts)
          -3 (-6.00 % of base) : 377593.dasm - OVFTest:Test_ulong(ulong):ulong (Tier0)


libraries.crossgen2.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 38689357 (overridden on cmd)
Total bytes of diff: 38689353 (overridden on cmd)
Total bytes of delta: -4 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
           1 : 153101.dasm (0.61 % of base)

Top file improvements (bytes):
          -2 : 22837.dasm (-1.79 % of base)
          -2 : 22842.dasm (-1.79 % of base)
          -1 : 22841.dasm (-0.93 % of base)

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

Top method regressions (bytes):
           1 (0.61 % of base) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (bytes):
          -2 (-1.79 % of base) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
          -2 (-1.79 % of base) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
          -1 (-0.93 % of base) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

Top method regressions (percentages):
           1 (0.61 % of base) : 153101.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (percentages):
          -2 (-1.79 % of base) : 22837.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
          -2 (-1.79 % of base) : 22842.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
          -1 (-0.93 % of base) : 22841.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

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


libraries.pmi.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 58919195 (overridden on cmd)
Total bytes of diff: 58919182 (overridden on cmd)
Total bytes of delta: -13 (-0.00 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           1 : 253199.dasm (0.61 % of base)

Top file improvements (bytes):
         -14 : 4014.dasm (-0.01 % of base)

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

Top method regressions (bytes):
           1 (0.61 % of base) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (bytes):
         -14 (-0.01 % of base) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

Top method regressions (percentages):
           1 (0.61 % of base) : 253199.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (percentages):
         -14 (-0.01 % of base) : 4014.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

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


libraries_tests.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 339819743 (overridden on cmd)
Total bytes of diff: 339656461 (overridden on cmd)
Total bytes of delta: -163282 (-0.05 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3483 : 523524.dasm (1.55 % of base)
        3479 : 524114.dasm (1.48 % of base)
        1323 : 473296.dasm (7.47 % of base)
         558 : 78239.dasm (1.02 % of base)
         558 : 78928.dasm (1.02 % of base)
         520 : 473656.dasm (4.20 % of base)
         504 : 279734.dasm (1.69 % of base)
         297 : 393455.dasm (3.37 % of base)
         276 : 118681.dasm (1.77 % of base)
         276 : 121263.dasm (1.77 % of base)
         276 : 120667.dasm (1.77 % of base)
         276 : 120932.dasm (1.77 % of base)
         276 : 121755.dasm (1.77 % of base)
         276 : 118876.dasm (1.77 % of base)
         258 : 720908.dasm (0.84 % of base)
         258 : 720921.dasm (0.84 % of base)
         218 : 518902.dasm (3.60 % of base)
         194 : 519652.dasm (3.54 % of base)
         183 : 393327.dasm (3.43 % of base)
         183 : 430123.dasm (2.99 % of base)

Top file improvements (bytes):
       -1783 : 726653.dasm (-0.57 % of base)
       -1718 : 726623.dasm (-0.87 % of base)
        -953 : 716694.dasm (-1.00 % of base)
        -953 : 704249.dasm (-1.07 % of base)
        -624 : 204236.dasm (-1.32 % of base)
        -490 : 628039.dasm (-0.69 % of base)
        -490 : 682826.dasm (-2.53 % of base)
        -490 : 684596.dasm (-0.38 % of base)
        -490 : 625179.dasm (-2.53 % of base)
        -490 : 640964.dasm (-2.53 % of base)
        -490 : 677370.dasm (-2.53 % of base)
        -490 : 678019.dasm (-0.69 % of base)
        -380 : 720969.dasm (-0.25 % of base)
        -323 : 720889.dasm (-0.74 % of base)
        -302 : 720760.dasm (-0.23 % of base)
        -296 : 563270.dasm (-2.45 % of base)
        -296 : 562971.dasm (-2.45 % of base)
        -253 : 204218.dasm (-0.88 % of base)
        -204 : 729024.dasm (-2.19 % of base)
        -204 : 729062.dasm (-2.18 % of base)

83 total files with Code Size differences (43 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        3483 (1.55 % of base) : 523524.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0)
        3479 (1.48 % of base) : 524114.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Instrumented Tier0)
        1323 (7.47 % of base) : 473296.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
         558 (1.02 % of base) : 78928.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Instrumented Tier0)
         558 (1.02 % of base) : 78239.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Tier0)
         520 (4.20 % of base) : 473656.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Instrumented Tier0)
         504 (1.69 % of base) : 279734.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (Tier0)
         297 (3.37 % of base) : 393455.dasm - System.Net.Http.QPack.H3StaticTable:.cctor() (Tier0)
         276 (1.77 % of base) : 118681.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 121263.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 120667.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 120932.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 121755.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 118876.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         258 (0.84 % of base) : 720908.dasm - System.Text.RegularExpressions.Tests.RegexMatchTests+<AllMatches_TestData>d__46:MoveNext():ubyte:this (Instrumented Tier0)
         258 (0.84 % of base) : 720921.dasm - System.Text.RegularExpressions.Tests.RegexMatchTests+<AllMatches_TestData>d__46:MoveNext():ubyte:this (Instrumented Tier0)
         218 (3.60 % of base) : 518902.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
         194 (3.54 % of base) : 519652.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
         183 (3.43 % of base) : 393327.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
         183 (2.99 % of base) : 430123.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)

Top method improvements (bytes):
       -1783 (-0.57 % of base) : 726653.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
       -1718 (-0.87 % of base) : 726623.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -953 (-1.00 % of base) : 716694.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Instrumented Tier0)
        -953 (-1.07 % of base) : 704249.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Tier0)
        -624 (-1.32 % of base) : 204236.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read1_Object(ubyte,ubyte):System.Object:this (MinOpts)
        -490 (-2.53 % of base) : 682826.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Instrumented Tier0)
        -490 (-2.53 % of base) : 640964.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Instrumented Tier0)
        -490 (-2.53 % of base) : 625179.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Tier0)
        -490 (-2.53 % of base) : 677370.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:.ctor(int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int,int):this (Tier0)
        -490 (-0.38 % of base) : 684596.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Instrumented Tier0)
        -490 (-0.69 % of base) : 628039.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Tier0)
        -490 (-0.69 % of base) : 678019.dasm - System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters:Equals(System.Text.Json.Serialization.Tests.ClassWithManyConstructorParameters):ubyte:this (Tier0)
        -380 (-0.25 % of base) : 720969.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4383_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -323 (-0.74 % of base) : 720889.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -302 (-0.23 % of base) : 720760.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex4375_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -296 (-2.45 % of base) : 563270.dasm - System.Tests.EnumTests:ToString_TryFormat(ubyte,ubyte) (Instrumented Tier0)
        -296 (-2.45 % of base) : 562971.dasm - System.Tests.EnumTests:ToString_TryFormat(ubyte,ubyte) (Instrumented Tier0)
        -253 (-0.88 % of base) : 204218.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
        -204 (-2.19 % of base) : 729024.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -204 (-2.18 % of base) : 729062.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

Top method regressions (percentages):
          15 (24.19 % of base) : 79353.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
          15 (22.73 % of base) : 736212.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
          16 (21.62 % of base) : 524631.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Instrumented Tier0)
          16 (21.62 % of base) : 230260.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
          12 (21.43 % of base) : 169541.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 156399.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 33925.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 13652.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (21.43 % of base) : 148165.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (21.43 % of base) : 163594.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          11 (20.75 % of base) : 4850.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          12 (20.34 % of base) : 736561.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,int]:.cctor() (Tier0)
           9 (19.15 % of base) : 213094.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Instrumented Tier0)
           9 (19.15 % of base) : 212144.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Tier0)
          22 (18.33 % of base) : 464088.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Instrumented Tier0)
          22 (18.33 % of base) : 204272.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
           9 (17.65 % of base) : 14705.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
          19 (16.10 % of base) : 162210.dasm - Microsoft.CodeAnalysis.Collections.Internal.SegmentedArrayHelper+ValueTypeSegmentHelper`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,Roslyn.Utilities.VoidResult]]:.cctor() (Tier0)
           4 (10.81 % of base) : 4302.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+ImplicitThis+INativeObject:.cctor() (Tier0)
           4 (10.81 % of base) : 4413.dasm - ComInterfaceGenerator.Tests.NativeExportsNE+UnmanagedToManagedCustomMarshalling+INativeObjectStateful:.cctor() (Tier0)

Top method improvements (percentages):
         -41 (-14.96 % of base) : 145785.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
         -41 (-14.96 % of base) : 160721.dasm - Microsoft.CodeAnalysis.Diagnostics.Analyzers.NamingStyles.SymbolSpecification+ModifierKind:.ctor(int):this (Tier0)
         -15 (-9.74 % of base) : 524753.dasm - System.Runtime.Serialization.Json.DataContractJsonSerializer:.ctor(System.Type,System.Xml.XmlDictionaryString,System.Collections.Generic.IEnumerable`1[System.Type],int,ubyte,ubyte):this (Tier0)
         -11 (-9.65 % of base) : 267206.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Instrumented Tier0)
         -11 (-9.65 % of base) : 267086.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Tier0)
          -6 (-9.23 % of base) : 116987.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:Complement():Microsoft.CodeAnalysis.CSharp.IValueSet`1[ubyte]:this (Instrumented Tier0)
          -6 (-9.23 % of base) : 111847.dasm - Microsoft.CodeAnalysis.CSharp.ValueSetFactory+BoolValueSet:Complement():Microsoft.CodeAnalysis.CSharp.IValueSet`1[ubyte]:this (Tier0)
         -13 (-8.84 % of base) : 232811.dasm - System.Collections.Specialized.Tests.BitVector32Tests:CountBitsRequired(short):short (Instrumented Tier0)
         -30 (-8.47 % of base) : 604864.dasm - System.ServiceModel.Syndication.Tests.XmlDiffDocument:set_Option(int):this (Tier0)
         -40 (-8.00 % of base) : 554738.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Instrumented Tier0)
         -40 (-8.00 % of base) : 552242.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Tier0)
         -21 (-7.87 % of base) : 470364.dasm - System.Xml.XmlDiff.XmlDiffDocument:set_Option(int):this (Instrumented Tier0)
         -21 (-7.87 % of base) : 469727.dasm - System.Xml.XmlDiff.XmlDiffDocument:set_Option(int):this (Tier0)
         -15 (-7.77 % of base) : 116531.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.NamedTypeSymbol:GetTypeArgumentVariance(short,short):short (Instrumented Tier0)
         -47 (-7.37 % of base) : 84286.dasm - Microsoft.CodeAnalysis.DllImportData:MakeFlags(ubyte,int,ubyte,int,System.Nullable`1[ubyte],System.Nullable`1[ubyte]):short (Instrumented Tier0)
         -12 (-7.23 % of base) : 77133.dasm - LibraryImportGenerator.IntegrationTests.CustomMarshallingTests:NonBlittableStructWithoutAllocation():this (Tier0)
         -12 (-7.23 % of base) : 77181.dasm - LibraryImportGenerator.IntegrationTests.CustomMarshallingTests:NonBlittableStructWithoutAllocation_Stateful():this (Tier0)
          -8 (-6.96 % of base) : 157571.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
          -8 (-6.96 % of base) : 173194.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
          -8 (-6.96 % of base) : 163361.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Tier0)


librariestestsnotieredcompilation.run.linux.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 130995704 (overridden on cmd)
Total bytes of diff: 130941460 (overridden on cmd)
Total bytes of delta: -54244 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        3483 : 193135.dasm (1.55 % of base)
          35 : 12226.dasm (0.95 % of base)
           3 : 12854.dasm (0.83 % of base)
           3 : 12224.dasm (0.28 % of base)
           2 : 170575.dasm (0.83 % of base)
           1 : 293326.dasm (0.15 % of base)
           1 : 3796.dasm (0.06 % of base)
           1 : 152837.dasm (0.61 % of base)

Top file improvements (bytes):
       -1783 : 280197.dasm (-0.57 % of base)
       -1718 : 280190.dasm (-0.87 % of base)
        -624 : 62207.dasm (-1.32 % of base)
        -380 : 273785.dasm (-0.25 % of base)
        -323 : 293567.dasm (-0.74 % of base)
        -302 : 273547.dasm (-0.23 % of base)
        -253 : 62197.dasm (-0.88 % of base)
        -204 : 285698.dasm (-2.19 % of base)
        -204 : 285701.dasm (-2.18 % of base)
        -105 : 61625.dasm (-0.29 % of base)
        -105 : 63175.dasm (-0.28 % of base)
        -104 : 61609.dasm (-0.85 % of base)
        -104 : 63161.dasm (-0.85 % of base)
         -94 : 281861.dasm (-0.97 % of base)
         -69 : 3523.dasm (-0.34 % of base)
         -68 : 62205.dasm (-0.85 % of base)
         -62 : 288876.dasm (-0.99 % of base)
         -62 : 288882.dasm (-0.99 % of base)
         -56 : 280365.dasm (-1.26 % of base)
         -56 : 289069.dasm (-1.26 % of base)

48 total files with Code Size differences (40 improved, 8 regressed), 32 unchanged.

Top method regressions (bytes):
        3483 (1.55 % of base) : 193135.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
          35 (0.95 % of base) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
           3 (0.28 % of base) : 12224.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatVerifierMessage(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.String):System.String:this (MinOpts)
           3 (0.83 % of base) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
           2 (0.83 % of base) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
           1 (0.06 % of base) : 3796.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)
           1 (0.61 % of base) : 152837.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
           1 (0.15 % of base) : 293326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get768_540+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

Top method improvements (bytes):
       -1783 (-0.57 % of base) : 280197.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
       -1718 (-0.87 % of base) : 280190.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -624 (-1.32 % of base) : 62207.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read1_Object(ubyte,ubyte):System.Object:this (MinOpts)
        -380 (-0.25 % of base) : 273785.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2219_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -323 (-0.74 % of base) : 293567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -302 (-0.23 % of base) : 273547.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2211_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -253 (-0.88 % of base) : 62197.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
        -204 (-2.19 % of base) : 285698.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -204 (-2.18 % of base) : 285701.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -105 (-0.29 % of base) : 61625.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:InitIDs():this (MinOpts)
        -105 (-0.28 % of base) : 63175.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:InitIDs():this (MinOpts)
        -104 (-0.85 % of base) : 61609.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract:CanSerialize(System.Type):ubyte:this (MinOpts)
        -104 (-0.85 % of base) : 63161.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializerContract:CanSerialize(System.Type):ubyte:this (MinOpts)
         -94 (-0.97 % of base) : 281861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -69 (-0.34 % of base) : 3523.dasm - Microsoft.CodeAnalysis.Testing.ReferenceAssemblies+<ResolveCoreAsync>d__50:MoveNext():this (MinOpts)
         -68 (-0.85 % of base) : 62205.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read84_XmlSerializerAttributes(ubyte,ubyte):SerializationTypes.XmlSerializerAttributes:this (MinOpts)
         -62 (-0.99 % of base) : 288876.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get632_339+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -62 (-0.99 % of base) : 288882.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get638_341+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -56 (-1.26 % of base) : 280365.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get2412_975+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -56 (-1.26 % of base) : 289069.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get729_411+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

Top method regressions (percentages):
        3483 (1.55 % of base) : 193135.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
          35 (0.95 % of base) : 12226.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
           3 (0.83 % of base) : 12854.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
           2 (0.83 % of base) : 170575.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
           1 (0.61 % of base) : 152837.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
           3 (0.28 % of base) : 12224.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatVerifierMessage(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Diagnostic,Microsoft.CodeAnalysis.Testing.DiagnosticResult,System.String):System.String:this (MinOpts)
           1 (0.15 % of base) : 293326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get768_540+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           1 (0.06 % of base) : 3796.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)

Top method improvements (percentages):
          -7 (-2.98 % of base) : 293281.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get744_525+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.98 % of base) : 289168.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get784_440+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.98 % of base) : 289202.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get798_449+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.98 % of base) : 289216.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get804_453+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.98 % of base) : 289219.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get805_454+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -8 (-2.71 % of base) : 277530.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get359_103+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 285625.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 278757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1032_480+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 275633.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get114_100+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 275642.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get116_102+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 279353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1436_675+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 279634.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1647_766+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 279642.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get1649_768+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 288353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get251_178+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 278106.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get737_284+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 278318.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get831_349+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 278326.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get833_351+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 278386.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get851_368+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 275529.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get89_76+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.42 % of base) : 275537.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Get91_78+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)


realworld.run.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 12767093 (overridden on cmd)
Total bytes of diff: 12766067 (overridden on cmd)
Total bytes of delta: -1026 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file improvements (bytes):
       -1026 : 4576.dasm (-0.63 % of base)

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

Top method improvements (bytes):
       -1026 (-0.63 % of base) : 4576.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

Top method improvements (percentages):
       -1026 (-0.63 % of base) : 4576.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

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


smoke_tests.nativeaot.linux.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 4192959 (overridden on cmd)
Total bytes of diff: 4192959 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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



osx arm64

Diffs are based on 2,229,922 contexts (927,360 MinOpts, 1,302,562 FullOpts).

MISSED contexts: 6,095 (0.27%)

Overall (+150,252 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 34,339,712 +952
benchmarks.run_tiered.osx.arm64.checked.mch 15,547,160 +328
coreclr_tests.run.osx.arm64.checked.mch 483,275,704 +147,732
libraries.crossgen2.osx.arm64.checked.mch 55,660,852 +0
libraries.pmi.osx.arm64.checked.mch 78,453,800 +0
libraries_tests.run.osx.arm64.Release.mch 311,227,792 +1,132
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 161,150,176 +108
realworld.run.osx.arm64.checked.mch 14,659,812 +0

MinOpts (+150,252 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 16,407,348 +952
benchmarks.run_tiered.osx.arm64.checked.mch 11,499,248 +328
coreclr_tests.run.osx.arm64.checked.mch 331,292,952 +147,732
libraries.crossgen2.osx.arm64.checked.mch 1,628 +0
libraries.pmi.osx.arm64.checked.mch 121,128 +0
libraries_tests.run.osx.arm64.Release.mch 201,319,184 +1,132
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 13,136,524 +108
realworld.run.osx.arm64.checked.mch 563,956 +0

Example diffs

benchmarks.run_pgo.osx.arm64.checked.mch

-8 (-7.14%) : 33533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector1281[uint]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M20240_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M20240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M20240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M20240_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - sub v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + sub v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00 G_M20240_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=2f5bb0ef) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=2f5bb0ef) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf1[uint]:BitwiseOrBenchmark():System.Numerics.Vector1[uint]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[uint]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[uint]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M29126_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M29126_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M29126_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M29126_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - orr v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + orr v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 18.50 G_M29126_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=dfc08e39) for method System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=dfc08e39) for method System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 35725.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Int>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M26995_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M26995_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M26995_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M26995_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - cmgt v0.4s, v8.4s, v0.4s
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + cmgt v0.4s, v17.4s, v16.4s
;; size=84 bbWeight=1 PerfScore 19.00 G_M26995_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=1a25968c) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=1a25968c) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 7180.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector1281[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte

@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - uqxtn v0.8b, v0.8h - ldr q16, [fp, #0x10] // [V01 arg1] - uqxtn2 v0.16b, v16.8h - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + uqxtn v16.8b, v16.8h + ldr q17, [fp, #0x10] // [V01 arg1] + uqxtn2 v16.16b, v17.8h + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 59316.dasm - System.Math:CopySign(double,double):double (Tier0)

@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr d16, [fp, #0x10] // [V01 arg1] - ldr d17, [fp, #0x18] // [V00 arg0] - bsl v0.2d, v16.2d, v17.2d - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr d17, [fp, #0x10] // [V01 arg1] + ldr d18, [fp, #0x18] // [V00 arg0] + bsl v16.2d, v17.2d, v18.2d + dup d0, v16.d[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 28383.dasm - System.Runtime.Intrinsics.Vector128:Createshort:System.Runtime.Intrinsics.Vector128`1short

@@ -19,16 +19,17 @@ G_M45666_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M45666_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M45666_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

benchmarks.run_tiered.osx.arm64.checked.mch

-8 (-7.14%) : 4941.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector1281[ulong]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M42360_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M42360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M42360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M42360_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - sub v0.2d, v8.2d, v0.2d
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + sub v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00 G_M42360_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=ce585a87) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=ce585a87) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 20353.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector1281[double]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M25023_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M25023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M25023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M25023_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - eor v0.2d, v8.2d, v0.2d
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + eor v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 18.50 G_M25023_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=3bd79e40) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=3bd79e40) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 23833.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector1281[byte]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M41222_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M41222_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M41222_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -36,28 +35,27 @@ G_M41222_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - orr v0.16b, v8.16b, v0.16b
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + orr v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 18.50 G_M41222_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=dd1d5ef9) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=dd1d5ef9) for method System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 39955.dasm - System.Math:CopySign(double,double):double (Tier0)

@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr d16, [fp, #0x10] // [V01 arg1] - ldr d17, [fp, #0x18] // [V00 arg0] - bsl v0.2d, v16.2d, v17.2d - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr d17, [fp, #0x10] // [V01 arg1] + ldr d18, [fp, #0x18] // [V00 arg0] + bsl v16.2d, v17.2d, v18.2d + dup d0, v16.d[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 42907.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVectordouble,float:System.Numerics.Vector`1float

@@ -18,17 +18,18 @@ G_M18259_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M18259_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - fcvtn v0.2s, v0.2d - ldr q16, [fp, #0x10] // [V01 arg1] - fcvtn2 v0.4s, v16.2d - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + fcvtn v16.2s, v16.2d + ldr q17, [fp, #0x10] // [V01 arg1] + fcvtn2 v16.4s, v17.2d + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M18259_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=c762b8ac) for method System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=c762b8ac) for method System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 19462.dasm - System.Runtime.Intrinsics.Vector128:Createshort:System.Runtime.Intrinsics.Vector128`1short

@@ -19,16 +19,17 @@ G_M45666_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M45666_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M45666_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=7c254d9d) for method System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

coreclr_tests.run.osx.arm64.checked.mch

-8 (-6.67%) : 506242.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)

@@ -10,22 +10,21 @@ ; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4> ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp str s0, [fp, #0x30] // [V00 arg0] str s1, [fp, #0x34] // [V00 arg0+0x04] str s2, [fp, #0x38] // [V00 arg0+0x08] str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref fmov s16, #1.0000 str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #144 LSL #16 movk x0, #1 LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1] ldr s0, [fp, #0x20] // [V02 tmp1] ldr s1, [fp, #0x24] // [V02 tmp1+0x04] @@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c] ;; size=80 bbWeight=1 PerfScore 26.00 G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48] - ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -68,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72] - 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! - E4 end - E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end E4 end

-12 (-6.12%) : 506656.dasm - Performance_2700:TestEntryPoint():int (Tier0)

@@ -11,15 +11,14 @@ ; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable" ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]! - str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp str xzr, [fp, #0x40] // [V00 loc0] str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -29,8 +28,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #145 LSL #16 movk x0, #1 LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 @@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movk x0, #145 LSL #16 movk x0, #1 LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0] movi v16.4s, #0 str q16, [fp, #0x30] // [V02 tmp1] @@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov w0, wzr ;; size=148 bbWeight=1 PerfScore 40.50 G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #100 ;; size=4 bbWeight=1 PerfScore 0.50 G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -97,10 +94,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88] - 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! - E4 end - E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end E4 end

-16 (-5.06%) : 185252.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)

@@ -7,7 +7,7 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3> ; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" @@ -21,20 +21,18 @@ ; TEMP_02 float -> [fp+0x70] ; TEMP_01 float -> [fp+0x6C] ;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8] - str d10, [sp, #0xE8] - stp x19, x20, [sp, #0xF0] - stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0] + stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E] stp x25, x26, [sp, #0xD1FFAB1E] stp x27, x28, [sp, #0xD1FFAB1E] mov fp, sp str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz add x0, fp, #32 // [V09 PInvokeFrame+0x08] mov x1, x12 @@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x1, fp, #32 // [V09 PInvokeFrame+0x08] ; byrRegs +[x1] str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop nop ldr x0, [fp, #0x60] // [V04 tmp1] @@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend ; gcr arg pop 0 ;; size=52 bbWeight=1 PerfScore 13.50 G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03] - str s8, [fp, #0x90] // [V06 tmp3] - ldr s9, [fp, #0x70] // [TEMP_02] - str s9, [fp, #0x94] // [V06 tmp3+0x04] - ldr s10, [fp, #0x6C] // [TEMP_01] - str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03] + str s16, [fp, #0x90] // [V06 tmp3] + ldr s17, [fp, #0x70] // [TEMP_02] + str s17, [fp, #0x94] // [V06 tmp3+0x04] + ldr s18, [fp, #0x6C] // [TEMP_01] + str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop ldr q16, [fp, #0x90] // [V06 tmp3] str q16, [fp, #0xB0] // [V02 loc2] @@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend ldp x27, x28, [sp, #0xD1FFAB1E] ldp x25, x26, [sp, #0xD1FFAB1E] ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E] - ldp x19, x20, [sp, #0xF0] - ldr d10, [sp, #0xE8] - ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0] + ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -145,10 +141,8 @@ Unwind Info: E6 save_next E6 save_next E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240] - DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232] - D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216] - A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224] + A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end E4 end E4 end

+44 (+73.33%) : 343354.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector641[byte]):System.Runtime.Intrinsics.Vector64`1[byte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

+44 (+73.33%) : 340048.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[ubyte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector1281[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50] +; TEMP_04 simd16 -> [fp+0x40] +; TEMP_03 simd16 -> [fp+0x30] +; TEMP_02 simd16 -> [fp+0x20] +; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M246_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0] - str q1, [fp, #0x20] // [V01 arg1] - str q2, [fp, #0x30] // [V01 arg1+0x10] - str q3, [fp, #0x40] // [V01 arg1+0x20] - str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0] + str q1, [fp, #0x70] // [V01 arg1] + str q2, [fp, #0x80] // [V01 arg1+0x10] + str q3, [fp, #0x90] // [V01 arg1+0x20] + str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M246_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0] - ldr q16, [fp, #0x20] // [V01 arg1] - ldr q17, [fp, #0x30] // [V01 arg1+0x10] - ldr q18, [fp, #0x40] // [V01 arg1+0x20] - ldr q19, [fp, #0x10] // [V02 arg2] - tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0] + str q16, [fp, #0x50] // [TEMP_05] + ldr q16, [fp, #0x70] // [V01 arg1] + str q16, [fp, #0x40] // [TEMP_04] + ldr q16, [fp, #0x80] // [V01 arg1+0x10] + str q16, [fp, #0x30] // [TEMP_03] + ldr q16, [fp, #0x90] // [V01 arg1+0x20] + str q16, [fp, #0x20] // [TEMP_02] + ldr q16, [fp, #0x60] // [V02 arg2] + str q16, [fp, #0x10] // [TEMP_01] + ldr q16, [fp, #0x50] // [TEMP_05] + ldr q17, [fp, #0x40] // [TEMP_04] + ldr q18, [fp, #0x30] // [TEMP_03] + ldr q19, [fp, #0x20] // [TEMP_02] + ldr q20, [fp, #0x10] // [TEMP_01] + tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b + mov v0.16b, v16.16b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M246_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=4b78ff09) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end E4 end

+44 (+73.33%) : 343352.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector641[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

libraries.crossgen2.osx.arm64.checked.mch

+0 (0.00%) : 22045.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M50957_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 22039.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x24] // [V01 loc0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

+0 (0.00%) : 22040.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)

@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M28342_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 22044.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0] - ; gcrRegs +[x1] - ldr w1, [x1, #0x08] - ; gcrRegs -[x1] - cbz w1, G_M30483_IG03 - ldr w1, [fp, #0x24] // [V01 loc0] - cmn w1, #1 - cset x1, ne - str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0] + ; gcrRegs +[x0] + ldr w0, [x0, #0x08] + ; gcrRegs -[x0] + cbz w0, G_M30483_IG03 + ldr w0, [fp, #0x24] // [V01 loc0] + cmn w0, #1 + cset x0, ne + str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04 ;; size=68 bbWeight=1 PerfScore 22.50 G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1 + str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50 G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x14] // [V04 tmp1] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

+0 (0.00%) : 153960.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1] - cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1] + cmp w0, w1
beq G_M16092_IG04 mov w0, wzr ;; size=60 bbWeight=1 PerfScore 16.00

libraries.pmi.osx.arm64.checked.mch

+0 (0.00%) : 98756.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

@@ -1346,21 +1346,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcr arg pop 0 str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ; gcrRegs +[x2] - cbz x2, G_M12913_IG05 - ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ldr x2, [x2, #0x08] - str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + cbz x0, G_M12913_IG05 + ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + ldr x0, [x0, #0x08] + str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50 G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2] - ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ; gcrRegs +[x0] + ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1] ; gcrRegs +[x1] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38358,16 +38359,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38393,21 +38396,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410] ; gcrRegs +[x3] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 movz x5, #0xD1FFAB1E // code for <unknown method> @@ -38480,16 +38485,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #1 LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xF8] // [V1272 tmp847]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #1 LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38915,9 +38922,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0xB0] // [V1281 tmp856] ldr x2, [fp, #0xB0] // [V1281 tmp856] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39058,9 +39067,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x90] // [V1285 tmp860] ldr x2, [fp, #0x90] // [V1285 tmp860] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39261,9 +39272,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x70] // [V1289 tmp864] ldr x2, [fp, #0x70] // [V1289 tmp864] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39404,9 +39417,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x50] // [V1293 tmp868] ldr x2, [fp, #0x50] // [V1293 tmp868] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0

libraries_tests.run.osx.arm64.Release.mch

-20 (-5.49%) : 166597.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)

@@ -5,40 +5,40 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action> -; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> -; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action> +; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> +; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> -; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg" -; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> +; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg" +; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym] - str x0, [fp, #0x48] - str x0, [fp, #0x40] // [V00 TypeCtx] - str x1, [fp, #0x38] // [V01 arg0] - ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym] + str x0, [fp, #0x50] + str x0, [fp, #0x48] // [V00 TypeCtx] + str x1, [fp, #0x40] // [V01 arg0] + ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00 G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1] ldr x1, [x1, #0x18] ; gcrRegs -[x1] @@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=20 bbWeight=1 PerfScore 11.00 G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] cbnz x0, G_M19780_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x48] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3] - ldr x0, [fp, #0x10] // [V07 tmp3] - ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3] + ldr x0, [fp, #0x18] // [V07 tmp3] + ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=52 bbWeight=0 PerfScore 0.00 G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18] - ldr x1, [x1, #-0x10] - str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08] + str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION ; gcrRegs -[x1] ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00 G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1] - ldr x0, [fp, #0x28] // [V03 loc1] - str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1] + ldr x0, [fp, #0x30] // [V03 loc1] + str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04] ; gcrRegs -[x0] ;; size=40 bbWeight=1 PerfScore 16.50 G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -193,10 +189,24 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! E4 end E4 end
+ +Unwind Info: + >> Start offset : 0xd1ffab1e (not in unwind data) + >> End offset : 0xd1ffab1e (not in unwind data) + Code Words : 1 + Epilog Count : 0 + E bit : 1 + X bit : 0 + Vers : 0 + Function Length : 12 (0x0000c) Actual length = 48 (0x000030) + --- One epilog, unwind codes at 0 + ---- Unwind codes ---- + ---- Epilog start at index 0 ---- + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end
E4 end ...

-16 (-4.12%) : 183955.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05 b G_M22620_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

-16 (-4.12%) : 185639.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05 b G_M57052_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

+12 (+12.50%) : 415483.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)

@@ -24,28 +24,31 @@ G_M34860_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str x0, [fp, #0x38] // [V00 this] ;; size=28 bbWeight=1 PerfScore 6.50 G_M34860_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1] + fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 ldr x0, [x0] blr x0 str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2] - ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2] + fmov d0, d16 + ldr d16, [fp, #0x20] // [V03 arg3] + fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0] movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 ldr x0, [x0] blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M34860_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=125477d3) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
; ============================================================ Unwind Info: @@ -56,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+14.29%) : 348065.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 350673.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Instrumented Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)

librariestestsnotieredcompilation.run.osx.arm64.Release.mch

-8 (-1.57%) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)

@@ -7,39 +7,38 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init -; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init -; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init +; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init +; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure" -; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init -; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init -; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" -; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure" -; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure" +; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init +; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init +; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure" +; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure" +; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" +; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20] - str wzr, [x9, #0x28] - str x0, [fp, #0x70] // [V00 this] - str x1, [fp, #0x60] // [V01 arg1] - str x2, [fp, #0x68] // [V01 arg1+0x08] - str x3, [fp, #0x50] // [V02 arg2] - str x4, [fp, #0x58] // [V02 arg2+0x08] - ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20] + str x0, [fp, #0x78] // [V00 this] + str x1, [fp, #0x68] // [V01 arg1] + str x2, [fp, #0x70] // [V01 arg1+0x08] + str x3, [fp, #0x58] // [V02 arg2] + str x4, [fp, #0x60] // [V02 arg2+0x08] + ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1] - ldr w1, [fp, #0x40] // [V07 tmp1] - uxtb w1, w1 - str w1, [fp, #0x4C] // [V03 loc0] - ldr w1, [fp, #0x4C] // [V03 loc0] - cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1] + ldr w0, [fp, #0x48] // [V07 tmp1] + uxtb w0, w0 + str w0, [fp, #0x54] // [V03 loc0] + ldr w0, [fp, #0x54] // [V03 loc0] + cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11 ;; size=72 bbWeight=1 PerfScore 20.50 G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08] - ; gcrRegs +[x1] - cbz x1, G_M13185_IG06 - ldr x1, [fp, #0x58] // [V02 arg2+0x08] - cmp x1, #0 - cset x1, eq - ; gcrRegs -[x1] - str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08] + ; gcrRegs +[x0] + cbz x0, G_M13185_IG06 + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + cmp x0, #0 + cset x0, eq + ; gcrRegs -[x0] + str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07 ;; size=28 bbWeight=1 PerfScore 8.00 G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1 + str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50 G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2] - uxtb w1, w1 - str w1, [fp, #0x44] // [V05 loc2] - ldr w1, [fp, #0x44] // [V05 loc2] - cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2] + uxtb w0, w0 + str w0, [fp, #0x4C] // [V05 loc2] + ldr w0, [fp, #0x4C] // [V05 loc2] + cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #1 LSL #32 bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01] + add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
cset x0, eq ; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19] - ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1] + ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3] - ldr x0, [fp, #0x58] // [V02 arg2+0x08] - ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3] + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4] - ldr x0, [fp, #0x30] // [V09 tmp3] - ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4] + ldr x0, [fp, #0x38] // [V09 tmp3] + ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1] cmp x0, x1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method> ; gcrRegs -[x1] movk x1, #0xD1FFAB1E LSL #16 @@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6] - ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6] + ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7] - ldr w0, [fp, #0x20] // [V12 tmp6] - ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7] + ldr w0, [fp, #0x28] // [V12 tmp6] + ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8] - ldr w0, [fp, #0x18] // [V14 tmp8] - str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8] + ldr w0, [fp, #0x20] // [V14 tmp8] + str w0, [fp, #0x2C] // [V11 tmp5]
...

-4 (-1.15%) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -5,75 +5,74 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x38] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x28] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> -; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init -; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] must-init
+; V00 arg0 [V00 ] ( 1, 1 ) struct (16) [fp+0x40] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x30] do-not-enreg[XSA] multireg-arg addr-exposed ld-addr-op <System.ReadOnlySpan`1[ubyte]> +; V02 loc0 [V02 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init +; V03 loc1 [V03 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] must-init
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call" -; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "non-inline candidate call" -; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x14] do-not-enreg[] "non-inline candidate call"
+; V05 tmp1 [V05 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "non-inline candidate call" +; V06 tmp2 [V06 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "non-inline candidate call" +; V07 tmp3 [V07 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "non-inline candidate call" +; TEMP_01 int -> [fp+0x18]
;
-; Lcl frame size = 56
+; Lcl frame size = 64
G_M13983_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x50]!
- str x19, [sp, #0x48]
mov fp, sp
- str wzr, [fp, #0x24] // [V02 loc0] - str wzr, [fp, #0x20] // [V03 loc1] - str x0, [fp, #0x38] // [V00 arg0] - str x1, [fp, #0x40] // [V00 arg0+0x08] - str x2, [fp, #0x28] // [V01 arg1] - str x3, [fp, #0x30] // [V01 arg1+0x08] - ;; size=36 bbWeight=1 PerfScore 8.50
+ str wzr, [fp, #0x2C] // [V02 loc0] + str wzr, [fp, #0x28] // [V03 loc1] + str x0, [fp, #0x40] // [V00 arg0] + str x1, [fp, #0x48] // [V00 arg0+0x08] + str x2, [fp, #0x30] // [V01 arg1] + str x3, [fp, #0x38] // [V01 arg1+0x08] + ;; size=32 bbWeight=1 PerfScore 7.50
G_M13983_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 ldr x1, [x1] blr x1
- str w0, [fp, #0x1C] // [V05 tmp1] - add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x24] // [V05 tmp1] + add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x1C] // [V05 tmp1]
+ ldr w1, [fp, #0x24] // [V05 tmp1]
cmp w0, w1 beq G_M13983_IG04 mov w0, wzr ;; size=68 bbWeight=1 PerfScore 17.00 G_M13983_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M13983_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 ldr x1, [x1] blr x1
- str w0, [fp, #0x18] // [V06 tmp2] - add x0, fp, #40 // [V01 arg1]
+ str w0, [fp, #0x20] // [V06 tmp2] + add x0, fp, #48 // [V01 arg1]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x18] // [V06 tmp2]
+ ldr w1, [fp, #0x20] // [V06 tmp2]
eor w0, w0, w1
- str w0, [fp, #0x24] // [V02 loc0] - str wzr, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x2C] // [V02 loc0] + str wzr, [fp, #0x28] // [V03 loc1]
b G_M13983_IG06 ;; size=72 bbWeight=1 PerfScore 18.50 G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- add x0, fp, #56 // [V00 arg0] - ldr w1, [fp, #0x20] // [V03 loc1]
+ add x0, fp, #64 // [V00 arg0] + ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 @@ -82,10 +81,11 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs +[x0] ldrb w0, [x0] ; byrRegs -[x0]
- str w0, [fp, #0x14] // [V07 tmp3] - ldr w19, [fp, #0x24] // [V02 loc0] - add x0, fp, #40 // [V01 arg1] - ldr w1, [fp, #0x20] // [V03 loc1]
+ str w0, [fp, #0x1C] // [V07 tmp3] + ldr w0, [fp, #0x2C] // [V02 loc0] + str w0, [fp, #0x18] // [TEMP_01] + add x0, fp, #48 // [V01 arg1] + ldr w1, [fp, #0x28] // [V03 loc1]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 @@ -94,46 +94,46 @@ G_M13983_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; byrRegs +[x0] ldrb w0, [x0] ; byrRegs -[x0]
- ldr w1, [fp, #0x14] // [V07 tmp3]
+ ldr w1, [fp, #0x1C] // [V07 tmp3]
eor w0, w0, w1
- orr w0, w19, w0 - str w0, [fp, #0x24] // [V02 loc0] - ldr w0, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x18] // [TEMP_01] + orr w0, w1, w0 + str w0, [fp, #0x2C] // [V02 loc0] + ldr w0, [fp, #0x28] // [V03 loc1]
add w0, w0, #1
- str w0, [fp, #0x20] // [V03 loc1] - ;; size=100 bbWeight=1 PerfScore 32.50
+ str w0, [fp, #0x28] // [V03 loc1] + ;; size=108 bbWeight=1 PerfScore 35.50
G_M13983_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- add x0, fp, #56 // [V00 arg0]
+ add x0, fp, #64 // [V00 arg0]
movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 movk x1, #1 LSL #32 ldr x1, [x1] blr x1
- ldr w1, [fp, #0x20] // [V03 loc1]
+ ldr w1, [fp, #0x28] // [V03 loc1]
cmp w0, w1 bgt G_M13983_IG05
- ldr w0, [fp, #0x24] // [V02 loc0]
+ ldr w0, [fp, #0x2C] // [V02 loc0]
cmp w0, #0 cset x0, eq ;; size=48 bbWeight=1 PerfScore 12.50 G_M13983_IG07: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x48]
ldp fp, lr, [sp], #0x50 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 348, prolog size 20, PerfScore 97.00, instruction count 87, allocated bytes for code 348 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 344, prolog size 16, PerfScore 95.00, instruction count 86, allocated bytes for code 344 (MethodHash=dd55c960) for method Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 87 (0x00057) Actual length = 348 (0x00015c)
+ Function Length : 86 (0x00056) Actual length = 344 (0x000158)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -144,10 +144,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 09 save_reg X#0 Z#9 (0x09); str x19, [sp, #72]
89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! E4 end E4 end
- E4 end - E4 end

+0 (0.00%) : 2077.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1[System.__Canon]:.ctor():this (MinOpts)

@@ -124,15 +124,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x5 ; gcrRegs -[x0-x4] ; gcr arg pop 0
- ldr x14, [fp, #0x70] // [V02 tmp1] - ; gcrRegs +[x14] - add x14, x14, #144 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x70] // [V02 tmp1] + ; gcrRegs +[x0] + add x14, x0, #144
; byrRegs +[x14] ldr x15, [fp, #0x48] // [V07 tmp6] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14] ldr x0, [fp, #0x78] // [V00 this] ; gcrRegs +[x0] @@ -201,15 +200,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x5 ; gcrRegs -[x0-x4] ; gcr arg pop 0
- ldr x14, [fp, #0x40] // [V08 tmp7] - ; gcrRegs +[x14] - add x14, x14, #152 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V08 tmp7] + ; gcrRegs +[x0] + add x14, x0, #152
; byrRegs +[x14] ldr x15, [fp, #0x18] // [V13 tmp12] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14] nop ;; size=428 bbWeight=1 PerfScore 184.00

+4 (+2.50%) : 287136.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|1_0(byref,byref,int,int) (MinOpts)

@@ -36,25 +36,26 @@ G_M37733_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M37733_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + adds w0, w0, #1
bvc G_M37733_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 8.00 G_M37733_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M37733_IG06 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 6.50 G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -76,13 +77,13 @@ G_M37733_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M37733_IG07: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=aa316c9a) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
; ============================================================ Unwind Info: @@ -93,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 284048.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|83_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M960_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M960_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M960_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M960_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M960_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=3b12fc3f) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 288220.dasm - System.Text.RegularExpressions.Generated.F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477Utilities:gWithResize|35_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M32397_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M32397_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M32397_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M32397_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M32397_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=a79b8172) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.osx.arm64.checked.mch

+0 (0.00%) : 4586.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

@@ -2596,41 +2596,39 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V11 loc9]
- ldr x2, [fp, #0xD1FFAB1E] // [V11 loc9] - ; gcrRegs +[x2] - cbz x2, G_M23076_IG09 - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ldrb w2, [x2, #0x40] - ; gcrRegs -[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V11 loc9] + cbz x0, G_M23076_IG09 + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ldrb w0, [x0, #0x40] + ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V73 tmp3]
+ str w0, [fp, xip1] // [V73 tmp3]
b G_M23076_IG10 ;; size=152 bbWeight=1 PerfScore 45.50 G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E str wzr, [fp, xip1] // [V73 tmp3] ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov xip1, #0xD1FFAB1E
- ldr w2, [fp, xip1] // [V73 tmp3] - uxtb w2, w2
+ ldr w0, [fp, xip1] // [V73 tmp3] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V09 loc7] - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ; gcrRegs +[x2] - ldr x2, [x2, #0x30] - str x2, [fp, #0xD1FFAB1E] // [V12 loc10] - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ldr w2, [x2, #0x38] - ; gcrRegs -[x2] - cmp w2, #0 - bgt G_M23076_IG27 - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ; gcrRegs +[x2] - ldr x2, [x2, #0x30]
+ str w0, [fp, xip1] // [V09 loc7]
ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] ; gcrRegs +[x0]
+ ldr x0, [x0, #0x30] + str x0, [fp, #0xD1FFAB1E] // [V12 loc10] + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ldr w0, [x0, #0x38] + ; gcrRegs -[x0] + cmp w0, #0 + bgt G_M23076_IG27 + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ; gcrRegs +[x0] + ldr x2, [x0, #0x30] + ; gcrRegs +[x2] + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
ldr x1, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x1] movz x3, #0xD1FFAB1E // code for <unknown method> @@ -3969,27 +3967,27 @@ G_M23076_IG51: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[x0] cmp w0, #197 bne G_M23076_IG54
- ldr x1, [fp, #0xD1FFAB1E] // [V02 loc0] - ; gcrRegs +[x1] - add x1, x1, #16 - ; gcrRegs -[x1] - ; byrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + ; gcrRegs +[x0] + add x0, x0, #16 + ; gcrRegs -[x0] + ; byrRegs +[x0]
;; size=68 bbWeight=1 PerfScore 22.00 G_M23076_IG52: ; bbWeight=1, nogc, extend
- add x0, x1, #20
+ add x1, x0, #20
mov x2, #0xD1FFAB1E add x2, fp, x2
- ldp x3, xip1, [x0]
+ ldp x3, xip1, [x1]
stp x3, xip1, [x2]
- ldr w3, [x0, #0x10]
+ ldr w3, [x1, #0x10]
str w3, [x2, #0x10] ;; size=28 bbWeight=1 PerfScore 10.50 G_M23076_IG53: ; bbWeight=1, extend mov xip1, #0xD1FFAB1E add x1, fp, xip1 // [V1653 tmp1583]
- ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x0]
+ ; byrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #1 LSL #32 @@ -17583,8 +17581,8 @@ G_M23076_IG1254: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- ldr w1, [fp, #0xD1FFAB1E] // [V2359 tmp2289] - cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289] + cmp w0, #26
bhi G_M23076_IG1255 ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289] mov w0, w0 @@ -21074,9 +21072,9 @@ G_M23076_IG1570: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #19 bne G_M23076_IG1571
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V325 tmp255]
+ str w0, [fp, xip1] // [V325 tmp255]
b G_M23076_IG1572 ;; size=68 bbWeight=1 PerfScore 17.50 G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -21085,8 +21083,8 @@ G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG1572: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V325 tmp255] - cbz w1, G_M23076_IG4955
+ ldr w0, [fp, xip1] // [V325 tmp255] + cbz w0, G_M23076_IG4955
b G_M23076_IG4944 ;; size=16 bbWeight=1 PerfScore 4.50 G_M23076_IG1573: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -26732,8 +26730,8 @@ G_M23076_IG1990: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- ldr w1, [fp, #0xD1FFAB1E] // [V2369 tmp2299] - cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299] + cmp w0, #26
bhi G_M23076_IG1991 ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299] mov w0, w0 @@ -62283,8 +62281,8 @@ G_M23076_IG4956: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0x60] // [V2422 tmp2352]
- ldr w1, [fp, #0x60] // [V2422 tmp2352] - cmp w1, #26
+ ldr w0, [fp, #0x60] // [V2422 tmp2352] + cmp w0, #26
bhi G_M23076_IG4957 ldr w0, [fp, #0x60] // [V2422 tmp2352] mov w0, w0 @@ -62315,10 +62313,10 @@ G_M23076_IG4960: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4961: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V267 tmp197] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V267 tmp197] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4962: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -62444,9 +62442,9 @@ G_M23076_IG4969: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #25 bne G_M23076_IG4970
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V444 tmp374]
+ str w0, [fp, xip1] // [V444 tmp374]
b G_M23076_IG4971 ;; size=48 bbWeight=1 PerfScore 12.00 G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -62455,10 +62453,10 @@ G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4971: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V444 tmp374] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V444 tmp374] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V19 loc17]
+ str w0, [fp, xip1] // [V19 loc17]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4972: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -62586,9 +62584,9 @@ G_M23076_IG4979: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #25 bne G_M23076_IG4980
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V131 tmp61]
+ str w0, [fp, xip1] // [V131 tmp61]
b G_M23076_IG4981 ;; size=48 bbWeight=1 PerfScore 12.00 G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -62597,10 +62595,10 @@ G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4981: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V131 tmp61] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V131 tmp61] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4982: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -64069,13 +64067,12 @@ G_M23076_IG5065: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62] - ; gcrRegs +[x1] - cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62] + cbz x0, G_M23076_IG5099
b G_M23076_IG5090 ;; size=40 bbWeight=1 PerfScore 12.50 G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -64084,13 +64081,12 @@ G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62] - ; gcrRegs +[x1] - cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62] + cbz x0, G_M23076_IG5099
b G_M23076_IG5090 ;; size=40 bbWeight=1 PerfScore 12.50 ...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch 17,441 241 485 16,715 -1,828 +2,780
benchmarks.run_tiered.osx.arm64.checked.mch 13,642 236 380 13,026 -1,796 +2,124
coreclr_tests.run.osx.arm64.checked.mch 144,626 4,431 7,030 133,165 -32,972 +180,704
libraries.crossgen2.osx.arm64.checked.mch 5 0 0 5 -0 +0
libraries.pmi.osx.arm64.checked.mch 1 0 0 1 -0 +0
libraries_tests.run.osx.arm64.Release.mch 177,655 516 1,215 175,924 -6,232 +7,364
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 11,766 2 30 11,734 -12 +120
realworld.run.osx.arm64.checked.mch 1 0 0 1 -0 +0
365,137 5,426 9,140 350,571 -42,840 +193,092

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run_pgo.osx.arm64.checked.mch 84,643 48,345 36,298 183 (0.22%) 183 (0.22%)
benchmarks.run_tiered.osx.arm64.checked.mch 48,253 37,331 10,922 63 (0.13%) 63 (0.13%)
coreclr_tests.run.osx.arm64.checked.mch 586,148 358,028 228,120 437 (0.07%) 437 (0.07%)
libraries.crossgen2.osx.arm64.checked.mch 233,760 15 233,745 0 (0.00%) 0 (0.00%)
libraries.pmi.osx.arm64.checked.mch 313,582 18 313,564 2,034 (0.64%) 2,034 (0.64%)
libraries_tests.run.osx.arm64.Release.mch 631,292 462,062 169,230 965 (0.15%) 965 (0.15%)
librariestestsnotieredcompilation.run.osx.arm64.Release.mch 301,027 21,558 279,469 2,087 (0.69%) 2,087 (0.69%)
realworld.run.osx.arm64.checked.mch 31,217 3 31,214 326 (1.03%) 326 (1.03%)
2,229,922 927,360 1,302,562 6,095 (0.27%) 6,095 (0.27%)

jit-analyze output

benchmarks.run_pgo.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 34339712 (overridden on cmd)
Total bytes of diff: 34340664 (overridden on cmd)
Total bytes of delta: 952 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 1998.dasm (36.19 % of base)
         152 : 26806.dasm (33.63 % of base)
          68 : 44953.dasm (39.53 % of base)
          40 : 81727.dasm (1.60 % of base)
          40 : 81730.dasm (1.60 % of base)
          24 : 31848.dasm (1.37 % of base)
          24 : 32752.dasm (0.32 % of base)
          24 : 26780.dasm (0.32 % of base)
          16 : 27168.dasm (2.26 % of base)
          16 : 42812.dasm (1.00 % of base)
          16 : 21329.dasm (3.54 % of base)
          16 : 17236.dasm (1.07 % of base)
          16 : 37514.dasm (1.01 % of base)
          16 : 44463.dasm (0.42 % of base)
          16 : 72191.dasm (4.94 % of base)
          16 : 77326.dasm (1.80 % of base)
          12 : 29316.dasm (1.30 % of base)
          12 : 28823.dasm (1.27 % of base)
          12 : 15450.dasm (1.36 % of base)
          12 : 30542.dasm (1.22 % of base)

Top file improvements (bytes):
         -24 : 18315.dasm (-1.15 % of base)
         -16 : 13793.dasm (-0.14 % of base)
         -16 : 26321.dasm (-0.29 % of base)
         -16 : 48684.dasm (-0.92 % of base)
         -16 : 61761.dasm (-2.08 % of base)
         -16 : 4374.dasm (-0.55 % of base)
         -12 : 14641.dasm (-0.13 % of base)
         -12 : 23425.dasm (-1.07 % of base)
         -12 : 4737.dasm (-3.66 % of base)
         -12 : 14162.dasm (-1.45 % of base)
         -12 : 63343.dasm (-2.83 % of base)
         -12 : 63682.dasm (-2.05 % of base)
          -8 : 34361.dasm (-7.14 % of base)
          -8 : 35725.dasm (-7.14 % of base)
          -8 : 35813.dasm (-7.14 % of base)
          -8 : 39973.dasm (-7.14 % of base)
          -8 : 4350.dasm (-7.14 % of base)
          -8 : 84221.dasm (-7.14 % of base)
          -8 : 26841.dasm (-5.56 % of base)
          -8 : 40537.dasm (-7.14 % of base)

75 total files with Code Size differences (39 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (33.63 % of base) : 26806.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
         152 (36.19 % of base) : 1998.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 44953.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          40 (1.60 % of base) : 81727.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          40 (1.60 % of base) : 81730.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          24 (0.32 % of base) : 32752.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (0.32 % of base) : 26780.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (1.37 % of base) : 31848.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.42 % of base) : 44463.dasm - Neural:read_data_file():this (Instrumented Tier0)
          16 (1.00 % of base) : 42812.dasm - NeuralJagged:Init() (Instrumented Tier0)
          16 (1.01 % of base) : 37514.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
          16 (1.07 % of base) : 17236.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 72191.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (1.80 % of base) : 77326.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
          16 (2.26 % of base) : 27168.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
          16 (3.54 % of base) : 21329.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.30 % of base) : 29316.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Instrumented Tier0)
          12 (1.36 % of base) : 15450.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Tier0)
          12 (1.27 % of base) : 28823.dasm - Interop+AppleCrypto:AppleCryptoNative_SslSetTargetName(System.Net.SafeSslHandle,System.String,int,byref):int (Tier0)
          12 (1.22 % of base) : 30542.dasm - Interop+libc:clonefile(System.String,System.String,int):int (Tier0)

Top method improvements (bytes):
         -24 (-1.15 % of base) : 18315.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
         -16 (-0.29 % of base) : 26321.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.92 % of base) : 48684.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.55 % of base) : 4374.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
         -16 (-0.14 % of base) : 13793.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
         -16 (-2.08 % of base) : 61761.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.05 % of base) : 63682.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
         -12 (-2.83 % of base) : 63343.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 4737.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 23425.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 14162.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 14641.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-5.56 % of base) : 26841.dasm - System.Numerics.Tests.Perf_Vector3:AddFunctionBenchmark():System.Numerics.Vector3:this (Tier0)
          -8 (-6.06 % of base) : 22849.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyFunctionBenchmark():System.Numerics.Vector4:this (Tier0)
          -8 (-6.06 % of base) : 34069.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyOperatorBenchmark():System.Numerics.Vector4:this (Tier0)
          -8 (-7.14 % of base) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
          -8 (-5.71 % of base) : 22769.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
          -8 (-0.37 % of base) : 6209.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)
          -8 (-7.14 % of base) : 39973.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 79729.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 44953.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 1998.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
         152 (33.63 % of base) : 26806.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
           4 (11.11 % of base) : 28383.dasm - System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
           4 (10.00 % of base) : 7180.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
           4 (10.00 % of base) : 906.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 59316.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 41402.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 65518.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
           4 (8.33 % of base) : 26242.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 81934.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 52731.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
           4 (6.25 % of base) : 48589.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 62103.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 25047.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 40264.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 69316.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 72191.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 24866.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 21246.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 34361.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:BitwiseOrBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 39973.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 79729.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 22750.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 80869.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 35813.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 77561.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 66061.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseAndOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 84221.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 35725.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 65921.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 71445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 73925.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 20066.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 60509.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 11570.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
          -8 (-7.14 % of base) : 4350.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 41385.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[short]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 33533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 40537.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)


benchmarks.run_tiered.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15547160 (overridden on cmd)
Total bytes of diff: 15547488 (overridden on cmd)
Total bytes of delta: 328 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 2011.dasm (36.19 % of base)
          68 : 32604.dasm (39.53 % of base)
          40 : 47383.dasm (1.85 % of base)
          24 : 23575.dasm (0.35 % of base)
          24 : 23829.dasm (0.35 % of base)
          24 : 27498.dasm (1.37 % of base)
          16 : 22566.dasm (2.48 % of base)
          16 : 14763.dasm (3.54 % of base)
          16 : 31961.dasm (1.04 % of base)
          16 : 46487.dasm (1.94 % of base)
          16 : 18417.dasm (1.07 % of base)
          16 : 32475.dasm (0.43 % of base)
          16 : 44922.dasm (4.94 % of base)
          12 : 929.dasm (0.50 % of base)
          12 : 24652.dasm (1.27 % of base)
          12 : 26665.dasm (1.22 % of base)
          12 : 17033.dasm (1.36 % of base)
          12 : 43010.dasm (0.71 % of base)
           8 : 14665.dasm (4.88 % of base)
           8 : 22292.dasm (4.88 % of base)

Top file improvements (bytes):
         -24 : 19177.dasm (-1.32 % of base)
         -20 : 13162.dasm (-1.37 % of base)
         -16 : 23208.dasm (-0.32 % of base)
         -16 : 42635.dasm (-2.08 % of base)
         -16 : 12993.dasm (-0.61 % of base)
         -16 : 6033.dasm (-0.18 % of base)
         -12 : 41168.dasm (-2.83 % of base)
         -12 : 11595.dasm (-3.66 % of base)
         -12 : 16274.dasm (-0.13 % of base)
         -12 : 21553.dasm (-1.07 % of base)
         -12 : 15944.dasm (-1.45 % of base)
          -8 : 14133.dasm (-5.71 % of base)
          -8 : 20505.dasm (-6.06 % of base)
          -8 : 30713.dasm (-7.14 % of base)
          -8 : 30717.dasm (-7.14 % of base)
          -8 : 44145.dasm (-7.14 % of base)
          -8 : 4609.dasm (-0.37 % of base)
          -8 : 7649.dasm (-5.41 % of base)
          -8 : 7969.dasm (-0.81 % of base)
          -8 : 23833.dasm (-7.14 % of base)

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

Top method regressions (bytes):
         152 (36.19 % of base) : 2011.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 32604.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          40 (1.85 % of base) : 47383.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
          24 (0.35 % of base) : 23829.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
          24 (0.35 % of base) : 23575.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
          24 (1.37 % of base) : 27498.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.43 % of base) : 32475.dasm - Neural:read_data_file():this (Tier0)
          16 (1.04 % of base) : 31961.dasm - NeuralJagged:Init() (Tier0)
          16 (1.07 % of base) : 18417.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 44922.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (1.94 % of base) : 46487.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
          16 (2.48 % of base) : 22566.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
          16 (3.54 % of base) : 14763.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.36 % of base) : 17033.dasm - Interop+AppleCrypto:AppleCryptoNative_SecKeychainCreateTemporary(System.String,int,ulong,byref):int (Tier0)
          12 (1.27 % of base) : 24652.dasm - Interop+AppleCrypto:AppleCryptoNative_SslSetTargetName(System.Net.SafeSslHandle,System.String,int,byref):int (Tier0)
          12 (1.22 % of base) : 26665.dasm - Interop+libc:clonefile(System.String,System.String,int):int (Tier0)
          12 (0.71 % of base) : 43010.dasm - Interop+Sys:ForkAndExecProcess(System.String,ulong,ulong,System.String,int,int,int,int,uint,uint,ulong,int,byref,byref,byref,byref):int (Tier0)
          12 (0.50 % of base) : 929.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
           8 (1.03 % of base) : 26696.dasm - Interop+Sys:GetNativeIPInterfaceStatistics(System.String,byref):int (Tier0)
           8 (0.96 % of base) : 43000.dasm - Interop+Sys:Stat(System.String,byref):int (Tier0)

Top method improvements (bytes):
         -24 (-1.32 % of base) : 19177.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
         -20 (-1.37 % of base) : 13162.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
         -16 (-0.32 % of base) : 23208.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
         -16 (-0.61 % of base) : 12993.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
         -16 (-0.18 % of base) : 6033.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
         -16 (-2.08 % of base) : 42635.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.83 % of base) : 41168.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 11595.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 21553.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 15944.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 16274.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-6.06 % of base) : 20505.dasm - System.Numerics.Tests.Perf_Vector4:MultiplyFunctionBenchmark():System.Numerics.Vector4:this (Tier0)
          -8 (-7.14 % of base) : 27617.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 28581.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-5.41 % of base) : 7649.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:LessThanAllBenchmark():ubyte:this (Tier0)
          -8 (-5.71 % of base) : 21257.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:LessThanAnyBenchmark():ubyte:this (Tier0)
          -8 (-7.14 % of base) : 28353.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:SubtractBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 23917.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseAndOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
          -8 (-7.14 % of base) : 27645.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
          -8 (-0.37 % of base) : 4609.dasm - System.Resources.ManifestBasedResourceGroveler:CreateResourceSet(System.IO.Stream,System.Reflection.Assembly):System.Resources.ResourceSet:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 32604.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 2011.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
           4 (11.11 % of base) : 19462.dasm - System.Runtime.Intrinsics.Vector128:Create[short](System.Runtime.Intrinsics.Vector64`1[short],System.Runtime.Intrinsics.Vector64`1[short]):System.Runtime.Intrinsics.Vector128`1[short] (Tier0)
           4 (10.00 % of base) : 909.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 39955.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 31205.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 42907.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
           4 (8.33 % of base) : 23129.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 47536.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 35333.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 40495.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 22473.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 31028.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 44325.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 44922.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 22292.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 14665.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           4 (4.76 % of base) : 44059.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 45593.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 47503.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:SumBenchmark():float:this (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 27617.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 28581.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:MultiplyOperatorBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 28353.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:SubtractBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 23917.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseAndOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
          -8 (-7.14 % of base) : 27645.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)
          -8 (-7.14 % of base) : 46925.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 45485.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 47865.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MultiplyBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 29225.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 30469.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 28565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 30717.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 32837.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 44145.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 23833.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[byte]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 20353.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[double]:this (Tier0)
          -8 (-7.14 % of base) : 31285.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 4941.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)
          -8 (-7.14 % of base) : 30293.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)
          -8 (-7.14 % of base) : 30713.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)


coreclr_tests.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 483275704 (overridden on cmd)
Total bytes of diff: 483423436 (overridden on cmd)
Total bytes of delta: 147732 (0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         860 : 320595.dasm (2.09 % of base)
         860 : 320626.dasm (2.11 % of base)
         860 : 3310.dasm (1.97 % of base)
         860 : 320530.dasm (2.11 % of base)
         860 : 320568.dasm (2.13 % of base)
         860 : 320582.dasm (1.98 % of base)
         860 : 320604.dasm (2.11 % of base)
         860 : 3282.dasm (1.98 % of base)
         860 : 3332.dasm (1.97 % of base)
         860 : 320592.dasm (1.99 % of base)
         860 : 320619.dasm (2.10 % of base)
         860 : 3299.dasm (1.84 % of base)
         808 : 228655.dasm (0.60 % of base)
         784 : 230042.dasm (0.59 % of base)
         784 : 230052.dasm (0.64 % of base)
         784 : 228779.dasm (0.59 % of base)
         756 : 485871.dasm (0.73 % of base)
         720 : 484698.dasm (0.68 % of base)
         672 : 484830.dasm (0.64 % of base)
         672 : 485895.dasm (0.69 % of base)

Top file improvements (bytes):
        -220 : 129381.dasm (-8.63 % of base)
        -220 : 129331.dasm (-8.63 % of base)
        -204 : 414075.dasm (-15.41 % of base)
        -204 : 129341.dasm (-11.62 % of base)
        -204 : 129371.dasm (-11.62 % of base)
        -204 : 129391.dasm (-11.62 % of base)
        -204 : 414045.dasm (-15.41 % of base)
        -204 : 414125.dasm (-15.41 % of base)
        -116 : 129351.dasm (-8.73 % of base)
        -116 : 129007.dasm (-3.49 % of base)
        -116 : 129017.dasm (-3.49 % of base)
        -116 : 129027.dasm (-3.49 % of base)
        -116 : 129195.dasm (-3.49 % of base)
        -116 : 129207.dasm (-3.49 % of base)
        -116 : 129217.dasm (-3.49 % of base)
        -116 : 129227.dasm (-3.49 % of base)
        -116 : 129321.dasm (-8.73 % of base)
        -116 : 129401.dasm (-8.73 % of base)
        -116 : 128995.dasm (-3.49 % of base)
        -112 : 414095.dasm (-6.83 % of base)

68 total files with Code Size differences (28 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         860 (1.98 % of base) : 3282.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 320530.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (2.13 % of base) : 320568.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (1.84 % of base) : 3299.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
         860 (1.98 % of base) : 320582.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.99 % of base) : 320592.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 3310.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
         860 (2.09 % of base) : 320595.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (2.11 % of base) : 320604.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 3332.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 320626.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         860 (2.10 % of base) : 320619.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         808 (0.60 % of base) : 228655.dasm - i4div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 228779.dasm - i8div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 230042.dasm - u4div:TestEntryPoint():int (MinOpts)
         784 (0.64 % of base) : 230052.dasm - u8div:TestEntryPoint():int (MinOpts)
         756 (0.73 % of base) : 485871.dasm - u4div:TestEntryPoint():int (Tier0)
         720 (0.68 % of base) : 484698.dasm - i4div:TestEntryPoint():int (Tier0)
         672 (0.64 % of base) : 484830.dasm - i8div:TestEntryPoint():int (Tier0)
         672 (0.69 % of base) : 485895.dasm - u8div:TestEntryPoint():int (Tier0)

Top method improvements (bytes):
        -220 (-8.63 % of base) : 129331.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 129381.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 414045.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 129341.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 414075.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 129371.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 129391.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 414125.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -116 (-3.49 % of base) : 128995.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129027.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129007.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt163:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129017.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt167:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129195.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129227.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129207.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 129217.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-8.73 % of base) : 129321.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 129351.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 129401.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
        -112 (-6.83 % of base) : 414065.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)

Top method regressions (percentages):
          52 (76.47 % of base) : 343358.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          52 (76.47 % of base) : 343356.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          52 (76.47 % of base) : 340054.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          52 (76.47 % of base) : 340052.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          44 (73.33 % of base) : 343354.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          44 (73.33 % of base) : 343352.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          44 (73.33 % of base) : 340050.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          44 (73.33 % of base) : 340048.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          36 (69.23 % of base) : 343350.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          36 (69.23 % of base) : 343348.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          36 (69.23 % of base) : 340046.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          36 (69.23 % of base) : 340044.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         184 (51.11 % of base) : 356206.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (51.11 % of base) : 356230.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 392718.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 392743.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 392529.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 392553.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
          52 (48.15 % of base) : 504582.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
         176 (47.31 % of base) : 356090.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)

Top method improvements (percentages):
        -204 (-15.41 % of base) : 414045.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 414075.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 414125.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 129341.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 129371.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 129391.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 129321.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 129351.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 129401.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 129331.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 129381.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -112 (-6.83 % of base) : 414065.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 414095.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 414115.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
          -8 (-6.67 % of base) : 506242.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
         -12 (-6.12 % of base) : 506656.dasm - Performance_2700:TestEntryPoint():int (Tier0)
         -16 (-5.06 % of base) : 185252.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
         -96 (-4.54 % of base) : 128985.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementDouble3:RunBasicScenario(int,ubyte):this (MinOpts)
         -96 (-4.54 % of base) : 129101.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt643:RunBasicScenario(int,ubyte):this (MinOpts)
         -96 (-4.54 % of base) : 129301.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt643:RunBasicScenario(int,ubyte):this (MinOpts)


libraries.crossgen2.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 55660852 (overridden on cmd)
Total bytes of diff: 55660852 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries.pmi.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 78453800 (overridden on cmd)
Total bytes of diff: 78453800 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries_tests.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 311227792 (overridden on cmd)
Total bytes of diff: 311228924 (overridden on cmd)
Total bytes of delta: 1132 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         624 : 377446.dasm (3.07 % of base)
         128 : 418998.dasm (1.75 % of base)
         112 : 418930.dasm (1.70 % of base)
          88 : 418428.dasm (1.49 % of base)
          64 : 417691.dasm (1.27 % of base)
          64 : 418022.dasm (1.27 % of base)
          64 : 418478.dasm (1.27 % of base)
          64 : 418904.dasm (1.27 % of base)
          64 : 418907.dasm (1.27 % of base)
          52 : 417718.dasm (0.91 % of base)
          48 : 246562.dasm (1.07 % of base)
          40 : 216277.dasm (3.85 % of base)
          40 : 397538.dasm (1.98 % of base)
          40 : 418439.dasm (1.07 % of base)
          32 : 418222.dasm (0.84 % of base)
          28 : 84114.dasm (3.07 % of base)
          24 : 70640.dasm (2.00 % of base)
          24 : 114987.dasm (0.72 % of base)
          24 : 310436.dasm (0.43 % of base)
          24 : 256131.dasm (3.41 % of base)

Top file improvements (bytes):
         -72 : 399011.dasm (-3.83 % of base)
         -72 : 399441.dasm (-2.96 % of base)
         -52 : 343600.dasm (-2.21 % of base)
         -44 : 101535.dasm (-1.56 % of base)
         -44 : 101909.dasm (-1.56 % of base)
         -44 : 179035.dasm (-1.44 % of base)
         -44 : 68178.dasm (-1.56 % of base)
         -44 : 101470.dasm (-1.56 % of base)
         -44 : 170123.dasm (-1.56 % of base)
         -44 : 218609.dasm (-1.11 % of base)
         -44 : 101507.dasm (-1.56 % of base)
         -44 : 129567.dasm (-1.75 % of base)
         -44 : 67725.dasm (-1.50 % of base)
         -44 : 68099.dasm (-1.72 % of base)
         -44 : 101559.dasm (-1.56 % of base)
         -44 : 101868.dasm (-1.56 % of base)
         -44 : 50929.dasm (-1.66 % of base)
         -44 : 54334.dasm (-1.66 % of base)
         -44 : 54338.dasm (-1.56 % of base)
         -44 : 94145.dasm (-1.56 % of base)

77 total files with Code Size differences (37 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         624 (3.07 % of base) : 377446.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
         128 (1.75 % of base) : 418998.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
         112 (1.70 % of base) : 418930.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
          88 (1.49 % of base) : 418428.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
          64 (1.27 % of base) : 417691.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
          64 (1.27 % of base) : 418904.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
          64 (1.27 % of base) : 418022.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
          64 (1.27 % of base) : 418478.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
          64 (1.27 % of base) : 418907.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
          52 (0.91 % of base) : 417718.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
          48 (1.07 % of base) : 246562.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
          40 (3.85 % of base) : 216277.dasm - System.Data.SqlTypes.SqlDateTime:.ctor(int,int,int,int,int,int,double):this (Tier0)
          40 (1.07 % of base) : 418439.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
          40 (1.98 % of base) : 397538.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
          32 (0.84 % of base) : 418222.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
          28 (3.07 % of base) : 84114.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
          24 (0.72 % of base) : 114987.dasm - DryIoc.Factory:ApplyReuse(FastExpressionCompiler.LightExpression.Expression,DryIoc.Request):FastExpressionCompiler.LightExpression.Expression:this (Tier0)
          24 (3.41 % of base) : 256131.dasm - FsCheck.Random:stdNext(FsCheck.Random+StdGen):System.Tuple`2[int,FsCheck.Random+StdGen] (Tier0)
          24 (2.00 % of base) : 70640.dasm - LibraryImportGenerator.IntegrationTests.FunctionPointerTests:CalledWithArgumentsInOrder():this (Tier0)
          24 (0.43 % of base) : 310436.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)

Top method improvements (bytes):
         -72 (-2.96 % of base) : 399441.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Instrumented Tier0)
         -72 (-3.83 % of base) : 399011.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -52 (-2.21 % of base) : 343600.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
         -44 (-1.11 % of base) : 218609.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
         -44 (-1.66 % of base) : 54334.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101559.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101535.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 54338.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 94145.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 170123.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.50 % of base) : 67725.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.44 % of base) : 179035.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.75 % of base) : 129567.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
         -44 (-1.72 % of base) : 68099.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Threading.CancellationToken]:Equals(System.Threading.CancellationToken,Xunit.Sdk.CollectionTracker,System.Threading.CancellationToken,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 68178.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.66 % of base) : 50929.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101470.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101507.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101909.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 101868.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (14.29 % of base) : 350673.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
           4 (14.29 % of base) : 348065.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
          12 (12.50 % of base) : 415483.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 415833.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 415187.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
          12 (11.54 % of base) : 415193.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
          12 (11.54 % of base) : 415335.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
           4 (9.09 % of base) : 345302.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
           4 (9.09 % of base) : 354406.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
           4 (9.09 % of base) : 344354.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (9.09 % of base) : 354040.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (9.09 % of base) : 349408.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
           4 (9.09 % of base) : 355321.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
           4 (9.09 % of base) : 347037.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
           4 (9.09 % of base) : 354707.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
           4 (8.33 % of base) : 298858.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Instrumented Tier0)
           4 (8.33 % of base) : 291834.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
           4 (8.33 % of base) : 348907.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
           4 (8.33 % of base) : 346662.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Tier0)
           4 (8.33 % of base) : 344598.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[long]:Invoke(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)

Top method improvements (percentages):
         -20 (-5.49 % of base) : 166597.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
         -16 (-4.12 % of base) : 183955.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
         -16 (-4.12 % of base) : 185639.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
         -72 (-3.83 % of base) : 399011.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -16 (-3.77 % of base) : 170047.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
         -12 (-3.66 % of base) : 74993.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
          -8 (-3.64 % of base) : 70559.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
          -4 (-3.33 % of base) : 626069.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
         -72 (-2.96 % of base) : 399441.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Instrumented Tier0)
         -12 (-2.83 % of base) : 19446.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
          -4 (-2.63 % of base) : 114013.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
         -12 (-2.54 % of base) : 453226.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.ReadOnlySpan`1[ushort],System.AssertExtensions+AssertThrowsActionReadOnly`1[ushort]):System.__Canon (Instrumented Tier0)
         -12 (-2.54 % of base) : 452864.dasm - System.AssertExtensions:AssertThrows[System.__Canon,ushort](System.Span`1[ushort],System.AssertExtensions+AssertThrowsAction`1[ushort]):System.__Canon (Instrumented Tier0)
          -8 (-2.38 % of base) : 49678.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
         -20 (-2.25 % of base) : 202923.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
          -4 (-2.22 % of base) : 217476.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
         -52 (-2.21 % of base) : 343600.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
          -4 (-2.13 % of base) : 217525.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
         -12 (-2.05 % of base) : 42036.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
          -8 (-2.04 % of base) : 152373.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder+BasicBlock:ShortenBranches(byref):this (Tier0)


librariestestsnotieredcompilation.run.osx.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 161150176 (overridden on cmd)
Total bytes of diff: 161150284 (overridden on cmd)
Total bytes of delta: 108 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           4 : 271352.dasm (2.38 % of base)
           4 : 274018.dasm (2.38 % of base)
           4 : 271353.dasm (2.50 % of base)
           4 : 271453.dasm (2.50 % of base)
           4 : 272776.dasm (2.38 % of base)
           4 : 273577.dasm (2.50 % of base)
           4 : 277604.dasm (2.50 % of base)
           4 : 278496.dasm (2.38 % of base)
           4 : 282434.dasm (2.50 % of base)
           4 : 283303.dasm (2.50 % of base)
           4 : 284939.dasm (2.38 % of base)
           4 : 285757.dasm (2.50 % of base)
           4 : 287179.dasm (2.50 % of base)
           4 : 287180.dasm (2.38 % of base)
           4 : 288220.dasm (2.86 % of base)
           4 : 269942.dasm (2.50 % of base)
           4 : 270218.dasm (2.38 % of base)
           4 : 271483.dasm (2.50 % of base)
           4 : 271861.dasm (2.50 % of base)
           4 : 284036.dasm (2.50 % of base)

Top file improvements (bytes):
          -8 : 14236.dasm (-1.57 % of base)
          -4 : 153511.dasm (-1.15 % of base)

27 total files with Code Size differences (2 improved, 25 regressed), 37 unchanged.

Top method regressions (bytes):
           4 (2.50 % of base) : 287136.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 277604.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 273577.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 278496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 274018.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 271453.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 287179.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 269942.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 287180.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.86 % of base) : 288220.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 287829.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 287837.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 271483.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 271861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 282434.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 272776.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 270218.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 271353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 285757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 286295.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)

Top method improvements (bytes):
          -8 (-1.57 % of base) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
          -4 (-1.15 % of base) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method regressions (percentages):
           4 (2.86 % of base) : 288220.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.86 % of base) : 284048.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 287136.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 277604.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 273577.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 271453.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 287179.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 269942.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 287829.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 271483.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 271861.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 282434.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 271353.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|6_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 285757.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 283303.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 284036.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 278496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 274018.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 287180.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 287837.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F6DD43EEA644F37FBD420BF6C4F76D7CBF00A201A3A5DFAA2DE4DAED4B5EFB477__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)

Top method improvements (percentages):
          -8 (-1.57 % of base) : 14236.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)
          -4 (-1.15 % of base) : 153511.dasm - Kerberos.NET.Crypto.KerberosCryptoTransformer:AreEqualSlow(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)


realworld.run.osx.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 14659812 (overridden on cmd)
Total bytes of diff: 14659812 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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



windows arm64

Diffs are based on 2,308,445 contexts (929,692 MinOpts, 1,378,753 FullOpts).

MISSED contexts: 6,353 (0.27%)

Overall (+148,112 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 46,475,100 +988
benchmarks.run_tiered.windows.arm64.checked.mch 15,251,468 +384
coreclr_tests.run.windows.arm64.checked.mch 494,449,448 +143,628
libraries.crossgen2.windows.arm64.checked.mch 59,008,088 +0
libraries.pmi.windows.arm64.checked.mch 78,059,240 +0
libraries_tests.run.windows.arm64.Release.mch 308,519,220 +3,000
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 169,413,408 +112
realworld.run.windows.arm64.checked.mch 15,463,108 +0

MinOpts (+148,112 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch 16,058,416 +988
benchmarks.run_tiered.windows.arm64.checked.mch 11,172,728 +384
coreclr_tests.run.windows.arm64.checked.mch 338,587,172 +143,628
libraries.crossgen2.windows.arm64.checked.mch 1,636 +0
libraries.pmi.windows.arm64.checked.mch 119,984 +0
libraries_tests.run.windows.arm64.Release.mch 201,005,952 +3,000
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 13,136,540 +112
realworld.run.windows.arm64.checked.mch 563,980 +0

Example diffs

benchmarks.run_pgo.windows.arm64.checked.mch

-8 (-7.14%) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector1[long]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[long]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[long]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M56679_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M56679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M56679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M56679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - cmge v0.2d, v0.2d, v8.2d
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + cmge v0.2d, v16.2d, v17.2d
;; size=84 bbWeight=1 PerfScore 19.00 G_M56679_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=d2652298) for method System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=d2652298) for method System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:BitwiseAndBenchmark():System.Numerics.Vector1[byte]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M14640_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M14640_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M14640_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M14640_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - and v0.16b, v8.16b, v0.16b
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + and v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 18.50 G_M14640_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=c4e4c6cf) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=c4e4c6cf) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector1[ubyte]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ubyte]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[ubyte]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M64560_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M64560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M64560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M64560_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - sub v0.16b, v8.16b, v0.16b
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + sub v0.16b, v17.16b, v16.16b
;; size=84 bbWeight=1 PerfScore 19.00 G_M64560_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=a47003cf) for method System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=a47003cf) for method System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 12422.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector1281[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte

@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - uqxtn v0.8b, v0.8h - ldr q16, [fp, #0x10] // [V01 arg1] - uqxtn2 v0.16b, v16.8h - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + uqxtn v16.8b, v16.8h + ldr q17, [fp, #0x10] // [V01 arg1] + uqxtn2 v16.16b, v17.8h + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 1220.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector1281[ushort],System.Runtime.Intrinsics.Vector1281[ushort]):System.Runtime.Intrinsics.Vector128`1ubyte

@@ -18,17 +18,18 @@ G_M3630_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3630_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x20] // [V00 arg0] - uqxtn v0.8b, v0.8h - ldr q16, [fp, #0x10] // [V01 arg1] - uqxtn2 v0.16b, v16.8h - ;; size=16 bbWeight=1 PerfScore 10.00
+ ldr q16, [fp, #0x20] // [V00 arg0] + uqxtn v16.8b, v16.8h + ldr q17, [fp, #0x10] // [V01 arg1] + uqxtn2 v16.16b, v17.8h + mov v0.16b, v16.16b + ;; size=20 bbWeight=1 PerfScore 10.50
G_M3630_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 40, prolog size 8, PerfScore 15.50, instruction count 10, allocated bytes for code 40 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 16.00, instruction count 11, allocated bytes for code 44 (MethodHash=bc79f1d1) for method System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 6268.dasm - System.Runtime.Intrinsics.Vector128:Createint:System.Runtime.Intrinsics.Vector128`1int

@@ -19,16 +19,17 @@ G_M3554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3554_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M3554_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

benchmarks.run_tiered.windows.arm64.checked.mch

-8 (-7.14%) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf1[double]:GreaterThanBenchmark():System.Numerics.Vector1[double]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[double]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[double]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M28109_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M28109_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M28109_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M28109_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - fcmgt v0.2d, v8.2d, v0.2d
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + fcmgt v0.2d, v17.2d, v16.2d
;; size=84 bbWeight=1 PerfScore 19.00 G_M28109_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=ffdb9232) for method System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=ffdb9232) for method System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector1[short]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M51679_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M51679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M51679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M51679_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - eor v0.8h, v8.8h, v0.8h
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + eor v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 18.50 G_M51679_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.00, instruction count 28, allocated bytes for code 112 (MethodHash=50653620) for method System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.00, instruction count 26, allocated bytes for code 104 (MethodHash=50653620) for method System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

-8 (-7.14%) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf1[short]:MinBenchmark():System.Numerics.Vector1[short]:this (Tier0)

@@ -5,18 +5,17 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[short]>
;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd16 -> [fp+0x10]
+; TEMP_01 simd16 -> [fp+0x18]
;
-; Lcl frame size = 24
+; Lcl frame size = 32
G_M25702_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x30]!
- str d8, [sp, #0x28]
mov fp, sp
- str x0, [fp, #0x20] // [V00 this] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x0, [fp, #0x28] // [V00 this] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M25702_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -26,8 +25,8 @@ G_M25702_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x18] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -36,28 +35,27 @@ G_M25702_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q0, [x0] - ldr q8, [fp, #0x10] // [TEMP_01] - smin v0.8h, v8.8h, v0.8h
+ ldr q16, [x0] + ldr q17, [fp, #0x18] // [TEMP_01] + smin v0.8h, v17.8h, v16.8h
;; size=84 bbWeight=1 PerfScore 19.00 G_M25702_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x28]
ldp fp, lr, [sp], #0x30 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 112, prolog size 12, PerfScore 26.50, instruction count 28, allocated bytes for code 112 (MethodHash=0a609b99) for method System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 23.50, instruction count 26, allocated bytes for code 104 (MethodHash=0a609b99) for method System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -65,10 +63,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 05 save_freg X#0 Z#5 (0x05); str d8, [sp, #40]
85 save_fplr_x #5 (0x05); stp fp, lr, [sp, #-48]! E4 end E4 end
- E4 end - E4 end

+4 (+10.00%) : 30778.dasm - System.MathF:CopySign(float,float):float (Tier0)

@@ -18,11 +18,12 @@ G_M24268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str s1, [fp, #0x18] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M24268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr s16, [fp, #0x18] // [V01 arg1] - ldr s17, [fp, #0x1C] // [V00 arg0] - bsl v0.4s, v16.4s, v17.4s - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr s17, [fp, #0x18] // [V01 arg1] + ldr s18, [fp, #0x1C] // [V00 arg0] + bsl v16.4s, v17.4s, v18.4s + dup s0, v16.s[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M24268_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000080000000h, 8000000080000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=6796a133) for method System.MathF:CopySign(float,float):float (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+10.00%) : 45500.dasm - System.Math:CopySign(double,double):double (Tier0)

@@ -18,11 +18,12 @@ G_M65071_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x10] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M65071_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr q0, [@RWD00] - ldr d16, [fp, #0x10] // [V01 arg1] - ldr d17, [fp, #0x18] // [V00 arg0] - bsl v0.2d, v16.2d, v17.2d - ;; size=16 bbWeight=1 PerfScore 6.50
+ ldr q16, [@RWD00] + ldr d17, [fp, #0x10] // [V01 arg1] + ldr d18, [fp, #0x18] // [V00 arg0] + bsl v16.2d, v17.2d, v18.2d + dup d0, v16.d[0] + ;; size=20 bbWeight=1 PerfScore 7.50
G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr @@ -30,7 +31,7 @@ G_M65071_IG03: ; bbWeight=1, epilog, nogc, extend RWD00 dq 8000000000000000h, 8000000000000000h
-; Total bytes of code 40, prolog size 8, PerfScore 12.00, instruction count 10, allocated bytes for code 40 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
+; Total bytes of code 44, prolog size 8, PerfScore 13.00, instruction count 11, allocated bytes for code 44 (MethodHash=c21601d0) for method System.Math:CopySign(double,double):double (Tier0)
; ============================================================ Unwind Info: @@ -41,7 +42,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 10 (0x0000a) Actual length = 40 (0x000028)
+ Function Length : 11 (0x0000b) Actual length = 44 (0x00002c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+11.11%) : 14964.dasm - System.Runtime.Intrinsics.Vector128:Createint:System.Runtime.Intrinsics.Vector128`1int

@@ -19,16 +19,17 @@ G_M3554_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str d1, [fp, #0x20] // [V01 arg1] ;; size=16 bbWeight=1 PerfScore 3.50 G_M3554_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x28] // [V00 arg0] - ldr d16, [fp, #0x20] // [V01 arg1] - ins v0.d[1], v16.d[0] - ;; size=12 bbWeight=1 PerfScore 5.00
+ ldr d16, [fp, #0x28] // [V00 arg0] + ldr d17, [fp, #0x20] // [V01 arg1] + ins v16.d[1], v17.d[0] + mov v0.16b, v16.16b + ;; size=16 bbWeight=1 PerfScore 5.50
G_M3554_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 36, prolog size 8, PerfScore 10.50, instruction count 9, allocated bytes for code 36 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
+; Total bytes of code 40, prolog size 8, PerfScore 11.00, instruction count 10, allocated bytes for code 40 (MethodHash=a275f21d) for method System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
; ============================================================ Unwind Info: @@ -39,7 +40,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 9 (0x00009) Actual length = 36 (0x000024)
+ 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)

coreclr_tests.run.windows.arm64.checked.mch

-8 (-6.67%) : 307681.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)

@@ -10,22 +10,21 @@ ; V02 tmp1 [V02 ] ( 1, 1 ) simd16 -> [fp+0x20] HFA(float) do-not-enreg[SR] multireg-ret "Return value temp for multireg return" <System.Numerics.Vector4> ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 56
+; Lcl frame size = 48
G_M39822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]! - str d8, [sp, #0x48]
+ stp fp, lr, [sp, #-0x40]!
mov fp, sp str s0, [fp, #0x30] // [V00 arg0] str s1, [fp, #0x34] // [V00 arg0+0x04] str s2, [fp, #0x38] // [V00 arg0+0x08] str s3, [fp, #0x3C] // [V00 arg0+0x0c]
- ;; size=28 bbWeight=1 PerfScore 6.50
+ ;; size=24 bbWeight=1 PerfScore 5.50
G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref fmov s16, #1.0000 str s16, [fp, #0x3C] // [V00 arg0+0x0c]
- ldr q8, [fp, #0x30] // [V00 arg0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [fp, #0x30] // [V00 arg0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -35,8 +34,8 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fadd v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fadd v16.4s, v17.4s, v16.4s
str q16, [fp, #0x20] // [V02 tmp1] ldr s0, [fp, #0x20] // [V02 tmp1] ldr s1, [fp, #0x24] // [V02 tmp1+0x04] @@ -44,23 +43,22 @@ G_M39822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ldr s3, [fp, #0x2C] // [V02 tmp1+0x0c] ;; size=80 bbWeight=1 PerfScore 26.00 G_M39822_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x48] - ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x40
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 120, prolog size 12, PerfScore 36.50, instruction count 30, allocated bytes for code 120 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
+; Total bytes of code 112, prolog size 8, PerfScore 33.50, instruction count 28, allocated bytes for code 112 (MethodHash=3ff16471) for method GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 30 (0x0001e) Actual length = 120 (0x000078)
+ Function Length : 28 (0x0001c) Actual length = 112 (0x000070)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -68,10 +66,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 09 save_freg X#0 Z#9 (0x09); str d8, [sp, #72] - 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]! - E4 end - E4 end
+ 87 save_fplr_x #7 (0x07); stp fp, lr, [sp, #-64]!
E4 end E4 end

-12 (-6.12%) : 308121.dasm - Performance_2700:TestEntryPoint():int (Tier0)

@@ -11,15 +11,14 @@ ; V03 tmp2 [V03 ] ( 1, 1 ) simd16 -> [fp+0x20] "ReplaceWithLclVar is creating a new local variable" ; TEMP_01 simd16 -> [fp+0x10] ;
-; Lcl frame size = 72
+; Lcl frame size = 64
G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]! - str d8, [sp, #0x58]
+ stp fp, lr, [sp, #-0x50]!
mov fp, sp str xzr, [fp, #0x40] // [V00 loc0] str xzr, [fp, #0x48] // [V00 loc0+0x08]
- ;; size=20 bbWeight=1 PerfScore 4.50
+ ;; size=16 bbWeight=1 PerfScore 3.50
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -29,8 +28,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32
- ldr q8, [x0] - str q8, [fp, #0x10] // [TEMP_01]
+ ldr q16, [x0] + str q16, [fp, #0x10] // [TEMP_01]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -40,8 +39,8 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr q16, [x0]
- ldr q8, [fp, #0x10] // [TEMP_01] - fmul v16.4s, v8.4s, v16.4s
+ ldr q17, [fp, #0x10] // [TEMP_01] + fmul v16.4s, v17.4s, v16.4s
str q16, [fp, #0x40] // [V00 loc0] movi v16.4s, #0 str q16, [fp, #0x30] // [V02 tmp1] @@ -60,33 +59,31 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov w0, wzr ;; size=148 bbWeight=1 PerfScore 40.50 G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov w0, #100 ;; size=4 bbWeight=1 PerfScore 0.50 G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- ldr d8, [sp, #0x58] - ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0x50
ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
RWD00 dq 4000000040000000h, 4000000040000000h
-; Total bytes of code 196, prolog size 20, PerfScore 53.50, instruction count 49, allocated bytes for code 196 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 184, prolog size 16, PerfScore 48.50, instruction count 46, allocated bytes for code 184 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 2 E bit : 0 X bit : 0 Vers : 0
- Function Length : 49 (0x00031) Actual length = 196 (0x0000c4)
+ Function Length : 46 (0x0002e) Actual length = 184 (0x0000b8)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -97,10 +94,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- DC 0B save_freg X#0 Z#11 (0x0B); str d8, [sp, #88] - 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! - E4 end - E4 end
+ 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
E4 end E4 end

-16 (-5.06%) : 226614.dasm - (dynamicClass):ILSTUBPInvoke():System.Numerics.Vector3 (MinOpts)

@@ -7,7 +7,7 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xD4] do-not-enreg[]
+; V00 loc0 [V00 ] ( 1, 1 ) int -> [fp+0xDC] do-not-enreg[]
; V01 loc1 [V01 ] ( 1, 1 ) simd12 -> [fp+0xC0] HFA(float) do-not-enreg[SR] multireg-ret <System.Numerics.Vector3> ; V02 loc2 [V02 ] ( 1, 1 ) simd12 -> [fp+0xB0] HFA(float) do-not-enreg[S] <System.Numerics.Vector3> ;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" @@ -21,20 +21,18 @@ ; TEMP_02 float -> [fp+0x70] ; TEMP_01 float -> [fp+0x6C] ;
-; Lcl frame size = 200
+; Lcl frame size = 208
G_M47779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #0xD1FFAB1E]!
- stp d8, d9, [sp, #0xD8] - str d10, [sp, #0xE8] - stp x19, x20, [sp, #0xF0] - stp x21, x22, [sp, #0xD1FFAB1E]
+ stp x19, x20, [sp, #0xE0] + stp x21, x22, [sp, #0xF0]
stp x23, x24, [sp, #0xD1FFAB1E] stp x25, x26, [sp, #0xD1FFAB1E] stp x27, x28, [sp, #0xD1FFAB1E] mov fp, sp str x12, [fp, #0x60] // [V04 tmp1]
- ;; size=40 bbWeight=1 PerfScore 9.50
+ ;; size=32 bbWeight=1 PerfScore 7.50
G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz add x0, fp, #32 // [V09 PInvokeFrame+0x08] mov x1, x12 @@ -48,7 +46,7 @@ G_M47779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x1, fp, #32 // [V09 PInvokeFrame+0x08] ; byrRegs +[x1] str x1, [x0, #0x10]
- str wzr, [fp, #0xD4] // [V00 loc0]
+ str wzr, [fp, #0xDC] // [V00 loc0]
nop nop ldr x0, [fp, #0x60] // [V04 tmp1] @@ -88,12 +86,12 @@ G_M47779_IG05: ; bbWeight=1, isz, extend ; gcr arg pop 0 ;; size=52 bbWeight=1 PerfScore 13.50 G_M47779_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr s8, [fp, #0x74] // [TEMP_03] - str s8, [fp, #0x90] // [V06 tmp3] - ldr s9, [fp, #0x70] // [TEMP_02] - str s9, [fp, #0x94] // [V06 tmp3+0x04] - ldr s10, [fp, #0x6C] // [TEMP_01] - str s10, [fp, #0x98] // [V06 tmp3+0x08]
+ ldr s16, [fp, #0x74] // [TEMP_03] + str s16, [fp, #0x90] // [V06 tmp3] + ldr s17, [fp, #0x70] // [TEMP_02] + str s17, [fp, #0x94] // [V06 tmp3+0x04] + ldr s18, [fp, #0x6C] // [TEMP_01] + str s18, [fp, #0x98] // [V06 tmp3+0x08]
nop ldr q16, [fp, #0x90] // [V06 tmp3] str q16, [fp, #0xB0] // [V02 loc2] @@ -114,26 +112,24 @@ G_M47779_IG07: ; bbWeight=1, epilog, nogc, extend ldp x27, x28, [sp, #0xD1FFAB1E] ldp x25, x26, [sp, #0xD1FFAB1E] ldp x23, x24, [sp, #0xD1FFAB1E]
- ldp x21, x22, [sp, #0xD1FFAB1E] - ldp x19, x20, [sp, #0xF0] - ldr d10, [sp, #0xE8] - ldp d8, d9, [sp, #0xD8]
+ ldp x21, x22, [sp, #0xF0] + ldp x19, x20, [sp, #0xE0]
ldp fp, lr, [sp], #0xD1FFAB1E ret lr
- ;; size=36 bbWeight=1 PerfScore 10.00
+ ;; size=28 bbWeight=1 PerfScore 7.00
-; Total bytes of code 316, prolog size 40, PerfScore 92.00, instruction count 79, allocated bytes for code 316 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
+; Total bytes of code 300, prolog size 32, PerfScore 87.00, instruction count 75, allocated bytes for code 300 (MethodHash=962e455c) for method (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 4
+ Code Words : 3
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 79 (0x0004f) Actual length = 316 (0x00013c)
+ Function Length : 75 (0x0004b) Actual length = 300 (0x00012c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -145,10 +141,8 @@ Unwind Info: E6 save_next E6 save_next E6 save_next
- C8 1E save_regp X#0 Z#30 (0x1E); stp x19, x20, [sp, #240] - DC 9D save_freg X#2 Z#29 (0x1D); str d10, [sp, #232] - D8 1B save_fregp X#0 Z#27 (0x1B); stp d8, d9, [sp, #216] - A7 save_fplr_x #39 (0x27); stp fp, lr, [sp, #-320]!
+ C8 1C save_regp X#0 Z#28 (0x1C); stp x19, x20, [sp, #224] + A5 save_fplr_x #37 (0x25); stp fp, lr, [sp, #-304]!
E4 end E4 end E4 end

+44 (+73.33%) : 83574.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[ubyte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte],System.Runtime.Intrinsics.Vector1281[ubyte]],System.Runtime.Intrinsics.Vector641[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[ubyte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M54744_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M54744_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M54744_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=cf242a27) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

+44 (+73.33%) : 83602.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector641[byte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector641[byte]):System.Runtime.Intrinsics.Vector64`1[byte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x48] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x18] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x10] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd8 -> [fp+0x88] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x58] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd8 -> [fp+0x50] HFA(simd8) do-not-enreg[S] <System.Runtime.Intrinsics.Vector64`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_02 simd8 -> [fp+0x48] +; TEMP_01 simd8 -> [fp+0x40] +; TEMP_05 simd16 -> [fp+0x30] +; TEMP_04 simd16 -> [fp+0x20] +; TEMP_03 simd16 -> [fp+0x10]
;
-; Lcl frame size = 64
+; Lcl frame size = 128
G_M2168_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x50]!
+ stp fp, lr, [sp, #-0x90]!
mov fp, sp
- str d0, [fp, #0x48] // [V00 arg0] - str q1, [fp, #0x18] // [V01 arg1] - str q2, [fp, #0x28] // [V01 arg1+0x10] - str q3, [fp, #0x38] // [V01 arg1+0x20] - str d4, [fp, #0x10] // [V02 arg2]
+ str d0, [fp, #0x88] // [V00 arg0] + str q1, [fp, #0x58] // [V01 arg1] + str q2, [fp, #0x68] // [V01 arg1+0x10] + str q3, [fp, #0x78] // [V01 arg1+0x20] + str d4, [fp, #0x50] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M2168_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x48] // [V00 arg0] - ldr q16, [fp, #0x18] // [V01 arg1] - ldr q17, [fp, #0x28] // [V01 arg1+0x10] - ldr q18, [fp, #0x38] // [V01 arg1+0x20] - ldr d19, [fp, #0x10] // [V02 arg2] - tbx v0.8b, {v16.16b, v17.16b, v18.16b}, v19.8b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr d16, [fp, #0x88] // [V00 arg0] + str d16, [fp, #0x48] // [TEMP_02] + ldr q16, [fp, #0x58] // [V01 arg1] + str q16, [fp, #0x30] // [TEMP_05] + ldr q16, [fp, #0x68] // [V01 arg1+0x10] + str q16, [fp, #0x20] // [TEMP_04] + ldr q16, [fp, #0x78] // [V01 arg1+0x20] + str q16, [fp, #0x10] // [TEMP_03] + ldr d16, [fp, #0x50] // [V02 arg2] + str d16, [fp, #0x40] // [TEMP_01] + ldr d16, [fp, #0x48] // [TEMP_02] + ldr q17, [fp, #0x30] // [TEMP_05] + ldr q18, [fp, #0x20] // [TEMP_04] + ldr q19, [fp, #0x10] // [TEMP_03] + ldr d20, [fp, #0x40] // [TEMP_01] + tbx v16.8b, {v17.16b, v18.16b, v19.16b}, v20.8b + mov v0.8b, v16.8b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M2168_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x50
+ ldp fp, lr, [sp], #0x90
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=e897f787) for method System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 89 save_fplr_x #9 (0x09); stp fp, lr, [sp, #-80]!
+ 91 save_fplr_x #17 (0x11); stp fp, lr, [sp, #-144]!
E4 end E4 end

+44 (+73.33%) : 44972.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector1281[byte],System.ValueTuple3System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte],System.Runtime.Intrinsics.Vector1281[byte]],System.Runtime.Intrinsics.Vector1281[byte]):System.Runtime.Intrinsics.Vector128`1[byte

@@ -5,36 +5,52 @@ ; partially interruptible ; Final local variable assignments ;
-; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0x50] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x20] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> -; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x10] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
+; V00 arg0 [V00 ] ( 1, 1 ) simd16 -> [fp+0xA0] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (48) [fp+0x70] HFA(simd16) do-not-enreg[SFA] multireg-arg <System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]]> +; V02 arg2 [V02 ] ( 1, 1 ) simd16 -> [fp+0x60] HFA(simd16) do-not-enreg[S] <System.Runtime.Intrinsics.Vector128`1[byte]>
;# V03 OutArgs [V03 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_05 simd16 -> [fp+0x50] +; TEMP_04 simd16 -> [fp+0x40] +; TEMP_03 simd16 -> [fp+0x30] +; TEMP_02 simd16 -> [fp+0x20] +; TEMP_01 simd16 -> [fp+0x10]
;
-; Lcl frame size = 80
+; Lcl frame size = 160
G_M10198_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
- stp fp, lr, [sp, #-0x60]!
+ stp fp, lr, [sp, #-0xB0]!
mov fp, sp
- str q0, [fp, #0x50] // [V00 arg0] - str q1, [fp, #0x20] // [V01 arg1] - str q2, [fp, #0x30] // [V01 arg1+0x10] - str q3, [fp, #0x40] // [V01 arg1+0x20] - str q4, [fp, #0x10] // [V02 arg2]
+ str q0, [fp, #0xA0] // [V00 arg0] + str q1, [fp, #0x70] // [V01 arg1] + str q2, [fp, #0x80] // [V01 arg1+0x10] + str q3, [fp, #0x90] // [V01 arg1+0x20] + str q4, [fp, #0x60] // [V02 arg2]
;; size=28 bbWeight=1 PerfScore 6.50 G_M10198_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x50] // [V00 arg0] - ldr q16, [fp, #0x20] // [V01 arg1] - ldr q17, [fp, #0x30] // [V01 arg1+0x10] - ldr q18, [fp, #0x40] // [V01 arg1+0x20] - ldr q19, [fp, #0x10] // [V02 arg2] - tbx v0.16b, {v16.16b, v17.16b, v18.16b}, v19.16b - ;; size=24 bbWeight=1 PerfScore 13.00
+ ldr q16, [fp, #0xA0] // [V00 arg0] + str q16, [fp, #0x50] // [TEMP_05] + ldr q16, [fp, #0x70] // [V01 arg1] + str q16, [fp, #0x40] // [TEMP_04] + ldr q16, [fp, #0x80] // [V01 arg1+0x10] + str q16, [fp, #0x30] // [TEMP_03] + ldr q16, [fp, #0x90] // [V01 arg1+0x20] + str q16, [fp, #0x20] // [TEMP_02] + ldr q16, [fp, #0x60] // [V02 arg2] + str q16, [fp, #0x10] // [TEMP_01] + ldr q16, [fp, #0x50] // [TEMP_05] + ldr q17, [fp, #0x40] // [TEMP_04] + ldr q18, [fp, #0x30] // [TEMP_03] + ldr q19, [fp, #0x20] // [TEMP_02] + ldr q20, [fp, #0x10] // [TEMP_01] + tbx v16.16b, {v17.16b, v18.16b, v19.16b}, v20.16b + mov v0.16b, v16.16b + ;; size=68 bbWeight=1 PerfScore 28.50
G_M10198_IG03: ; bbWeight=1, epilog, nogc, extend
- ldp fp, lr, [sp], #0x60
+ ldp fp, lr, [sp], #0xB0
ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 60, prolog size 8, PerfScore 21.50, instruction count 15, allocated bytes for code 60 (MethodHash=51c0d829) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
+; Total bytes of code 104, prolog size 8, PerfScore 37.00, instruction count 26, allocated bytes for code 104 (MethodHash=51c0d829) for method System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
; ============================================================ Unwind Info: @@ -45,7 +61,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 15 (0x0000f) Actual length = 60 (0x00003c)
+ Function Length : 26 (0x0001a) Actual length = 104 (0x000068)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -53,7 +69,7 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- 8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]!
+ 95 save_fplr_x #21 (0x15); stp fp, lr, [sp, #-176]!
E4 end E4 end

libraries.crossgen2.windows.arm64.checked.mch

+0 (0.00%) : 6661.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

@@ -28,17 +28,17 @@ G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M50957_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M50957_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 136778.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -38,8 +38,8 @@ G_M16092_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- ldr w11, [fp, #0x20] // [V06 tmp1] - cmp w0, w11
+ ldr w1, [fp, #0x20] // [V06 tmp1] + cmp w0, w1
beq G_M16092_IG04 mov w0, wzr ;; size=60 bbWeight=1 PerfScore 16.00

+0 (0.00%) : 6655.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -33,10 +33,10 @@ G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x24] // [V01 loc0] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

+0 (0.00%) : 6656.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)

@@ -28,17 +28,17 @@ G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, add x11, x11, [LOW RELOC #0xD1FFAB1E] ldr x1, [x11] blr x1
- fcvtzs x11, d0 - str x11, [fp, #0x18] // [V02 loc0] - ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0 - sxtw x0, w0 - cmp x11, x0
+ fcvtzs x0, d0 + str x0, [fp, #0x18] // [V02 loc0] + ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0 + sxtw x1, w1 + cmp x0, x1
blt G_M28342_IG03
- ldr x11, [fp, #0x18] // [V02 loc0] - movn w0, #0xD1FFAB1E LSL #16 - sxtw x0, w0 - cmp x11, x0
+ ldr x0, [fp, #0x18] // [V02 loc0] + movn w1, #0xD1FFAB1E LSL #16 + sxtw x1, w1 + cmp x0, x1
ble G_M28342_IG04 ;; size=68 bbWeight=1 PerfScore 17.50 G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref

+0 (0.00%) : 6660.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

@@ -34,26 +34,26 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x3 ; gcrRegs -[x0 x2] str w0, [fp, #0x24] // [V01 loc0]
- ldr x1, [fp, #0x28] // [V00 arg0] - ; gcrRegs +[x1] - ldr w1, [x1, #0x08] - ; gcrRegs -[x1] - cbz w1, G_M30483_IG03 - ldr w1, [fp, #0x24] // [V01 loc0] - cmn w1, #1 - cset x1, ne - str w1, [fp, #0x14] // [V04 tmp1]
+ ldr x0, [fp, #0x28] // [V00 arg0] + ; gcrRegs +[x0] + ldr w0, [x0, #0x08] + ; gcrRegs -[x0] + cbz w0, G_M30483_IG03 + ldr w0, [fp, #0x24] // [V01 loc0] + cmn w0, #1 + cset x0, ne + str w0, [fp, #0x14] // [V04 tmp1]
b G_M30483_IG04 ;; size=68 bbWeight=1 PerfScore 22.50 G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x14] // [V04 tmp1]
+ mov w0, #1 + str w0, [fp, #0x14] // [V04 tmp1]
;; size=8 bbWeight=1 PerfScore 1.50 G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- adrp x1, [HIGH RELOC #0xD1FFAB1E] // const ptr - add x1, x1, [LOW RELOC #0xD1FFAB1E] - ldr x1, [x1] - ldr x1, [x1]
+ adrp x0, [HIGH RELOC #0xD1FFAB1E] // const ptr + add x0, x0, [LOW RELOC #0xD1FFAB1E] + ldr x0, [x0] + ldr x1, [x0]
; gcrRegs +[x1] ldr w0, [fp, #0x14] // [V04 tmp1] adrp x11, [HIGH RELOC #0xD1FFAB1E] // function address

libraries.pmi.windows.arm64.checked.mch

+0 (0.00%) : 15929.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

@@ -1350,21 +1350,22 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcr arg pop 0 str x0, [fp, #0xD1FFAB1E] // [V02 loc0]
- ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ; gcrRegs +[x2] - cbz x2, G_M12913_IG05 - ldr x2, [fp, #0xD1FFAB1E] // [V02 loc0] - ldr x2, [x2, #0x08] - str x2, [fp, #0xD1FFAB1E] // [V03 loc1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + cbz x0, G_M12913_IG05 + ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + ldr x0, [x0, #0x08] + str x0, [fp, #0xD1FFAB1E] // [V03 loc1]
;; size=48 bbWeight=1 PerfScore 17.50 G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x2] - ldr x2, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs -[x0] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ; gcrRegs +[x0] + ldr x2, [x0, #0x08]
; gcrRegs +[x2]
- ldr x2, [x2, #0x08]
ldr x1, [fp, #0xD1FFAB1E] // [V03 loc1] ; gcrRegs +[x1] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38354,16 +38355,18 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1269 tmp844]
ldr x1, [fp, #0xD1FFAB1E] // [V1269 tmp844]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38389,21 +38392,23 @@ G_M12913_IG649: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xD1FFAB1E] // [V1270 tmp845]
ldr x1, [fp, #0xD1FFAB1E] // [V1270 tmp845]
- ldr x4, [fp, #0xD1FFAB1E] // [V00 arg0]
+ ; gcrRegs +[x1] + ldr x0, [fp, #0xD1FFAB1E] // [V00 arg0] + ldr x4, [x0, #0x08]
; gcrRegs +[x4]
- ldr x4, [x4, #0x08]
ldr x2, [fp, #0xD1FFAB1E] // [V411 loc409] ; gcrRegs +[x2] ldr x3, [fp, #0xD1FFAB1E] // [V412 loc410] ; gcrRegs +[x3] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x5, #0xD1FFAB1E // code for <unknown method> @@ -38476,16 +38481,18 @@ G_M12913_IG650: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov w1, #0xD1FFAB1E bl CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE ; gcr arg pop 0
- movz x1, #0xD1FFAB1E // data for <unknown class>:<unknown field> - movk x1, #0xD1FFAB1E LSL #16 - movk x1, #0xD1FFAB1E LSL #32 - ldr x1, [x1] - ; gcrRegs +[x1] - str x1, [fp, #0xF8] // [V1272 tmp847]
+ movz x0, #0xD1FFAB1E // data for <unknown class>:<unknown field> + movk x0, #0xD1FFAB1E LSL #16 + movk x0, #0xD1FFAB1E LSL #32 + ldr x0, [x0] + ; gcrRegs +[x0] + str x0, [fp, #0xF8] // [V1272 tmp847]
ldr x1, [fp, #0xF8] // [V1272 tmp847]
+ ; gcrRegs +[x1]
ldr x2, [fp, #0xD1FFAB1E] // [V31 loc29] ; gcrRegs +[x2] movz x0, #0xD1FFAB1E
+ ; gcrRegs -[x0]
movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 movz x3, #0xD1FFAB1E // code for <unknown method> @@ -38911,9 +38918,11 @@ G_M12913_IG662: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0xB0] // [V1281 tmp856] ldr x2, [fp, #0xB0] // [V1281 tmp856] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39054,9 +39063,11 @@ G_M12913_IG670: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x90] // [V1285 tmp860] ldr x2, [fp, #0x90] // [V1285 tmp860] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39257,9 +39268,11 @@ G_M12913_IG679: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x70] // [V1289 tmp864] ldr x2, [fp, #0x70] // [V1289 tmp864] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0 @@ -39400,9 +39413,11 @@ G_M12913_IG687: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref str x0, [fp, #0x50] // [V1293 tmp868] ldr x2, [fp, #0x50] // [V1293 tmp868] ; gcrRegs +[x2]
- ldr w1, [fp, #0xD1FFAB1E] // [V28 loc26] - sxtw x1, w1
+ ldr w0, [fp, #0xD1FFAB1E] // [V28 loc26] + ; gcrRegs -[x0] + sxtw x1, w0
ldr x0, [fp, #0xD1FFAB1E] // [V33 loc31]
+ ; gcrRegs +[x0]
bl CORINFO_HELP_ARRADDR_ST ; gcrRegs -[x0 x2] ; gcr arg pop 0

libraries_tests.run.windows.arm64.Release.mch

-20 (-5.49%) : 159856.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrowsSystem.__Canon (Tier0)

@@ -5,40 +5,40 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x40] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] class-hnd <System.Action> -; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> -; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <System.__Canon>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x48] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] class-hnd <System.Action> +; V02 loc0 [V02 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init ld-addr-op class-hnd <System.__Canon> +; V03 loc1 [V03 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon>
;# V04 OutArgs [V04 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> -; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "SpillCatchArg" -; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x50] do-not-enreg[V] "PSPSym"
+; V05 tmp1 [V05 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <System.__Canon> +; V06 tmp2 [V06 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "SpillCatchArg" +; V07 tmp3 [V07 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V08 PSPSym [V08 ] ( 1, 1 ) long -> [fp+0x58] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 72
+; Lcl frame size = 80
G_M19780_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x60]!
- str x19, [sp, #0x58]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20]
+ stp xzr, xzr, [x9, #0x20]
add x2, sp, #96
- str x2, [fp, #0x50] // [V08 PSPSym] - str x0, [fp, #0x48] - str x0, [fp, #0x40] // [V00 TypeCtx] - str x1, [fp, #0x38] // [V01 arg0] - ;; size=48 bbWeight=1 PerfScore 10.00
+ str x2, [fp, #0x58] // [V08 PSPSym] + str x0, [fp, #0x50] + str x0, [fp, #0x48] // [V00 TypeCtx] + str x1, [fp, #0x40] // [V01 arg0] + ;; size=44 bbWeight=1 PerfScore 9.00
G_M19780_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- str xzr, [fp, #0x30] // [V02 loc0]
+ str xzr, [fp, #0x38] // [V02 loc0]
;; size=4 bbWeight=1 PerfScore 1.00 G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x0, [fp, #0x38] // [V01 arg0]
+ ldr x0, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x1, [fp, #0x38] // [V01 arg0]
+ ldr x1, [fp, #0x40] // [V01 arg0]
; gcrRegs +[x1] ldr x1, [x1, #0x18] ; gcrRegs -[x1] @@ -47,13 +47,13 @@ G_M19780_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=20 bbWeight=1 PerfScore 11.00 G_M19780_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] cbnz x0, G_M19780_IG06 ;; size=8 bbWeight=1 PerfScore 3.00 G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -70,7 +70,7 @@ G_M19780_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V02 loc0]
+ ldr x0, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -79,29 +79,30 @@ G_M19780_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x48] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
beq G_M19780_IG08
- ;; size=56 bbWeight=1 PerfScore 21.50
+ ;; size=60 bbWeight=1 PerfScore 24.00
G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V07 tmp3] - ldr x0, [fp, #0x10] // [V07 tmp3] - ldr x1, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x18] // [V07 tmp3] + ldr x0, [fp, #0x18] // [V07 tmp3] + ldr x1, [fp, #0x38] // [V02 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -115,77 +116,72 @@ G_M19780_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=52 bbWeight=0 PerfScore 0.00 G_M19780_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
- ldr x19, [sp, #0x58]
ldp fp, lr, [sp], #0x60 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M19780_IG09: ; bbWeight=0, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18] - ldr x1, [x1, #-0x10] - str x1, [sp, #0x10]
+ ldr x1, [x1, #-0x08] + str x1, [sp, #0x18]
sub fp, x1, #96
- ;; size=20 bbWeight=0 PerfScore 0.00
+ ;; size=16 bbWeight=0 PerfScore 0.00
G_M19780_IG10: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref
- str x0, [fp, #0x18] // [V06 tmp2] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x20] // [V06 tmp2] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x18] // [V06 tmp2]
+ ldr x1, [fp, #0x20] // [V06 tmp2]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOF_EXCEPTION ; gcrRegs -[x1] ; gcr arg pop 0 ;; size=24 bbWeight=0 PerfScore 0.00 G_M19780_IG11: ; bbWeight=0, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=0 PerfScore 0.00
+ ;; size=8 bbWeight=0 PerfScore 0.00
G_M19780_IG12: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #96
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M19780_IG13: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V05 tmp1] - ldr x0, [fp, #0x40] // [V00 TypeCtx]
+ str x0, [fp, #0x28] // [V05 tmp1] + ldr x0, [fp, #0x48] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x20] // [V05 tmp1]
+ ldr x1, [fp, #0x28] // [V05 tmp1]
; gcrRegs +[x1] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x28] // [V03 loc1] - ldr x0, [fp, #0x28] // [V03 loc1] - str x0, [fp, #0x30] // [V02 loc0]
+ str x0, [fp, #0x30] // [V03 loc1] + ldr x0, [fp, #0x30] // [V03 loc1] + str x0, [fp, #0x38] // [V02 loc0]
adr x0, [G_M19780_IG04] ; gcrRegs -[x0] ;; size=40 bbWeight=1 PerfScore 16.50 G_M19780_IG14: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 364, prolog size 48, PerfScore 76.50, instruction count 91, allocated bytes for code 364 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
+; Total bytes of code 344, prolog size 44, PerfScore 73.00, instruction count 86, allocated bytes for code 344 (MethodHash=d176b2bb) for method Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 60 (0x0003c) Actual length = 240 (0x0000f0)
+ Function Length : 59 (0x0003b) Actual length = 236 (0x0000ec)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -193,10 +189,24 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0B save_reg X#0 Z#11 (0x0B); str x19, [sp, #88]
8B save_fplr_x #11 (0x0B); stp fp, lr, [sp, #-96]! E4 end E4 end
+ +Unwind Info: + >> Start offset : 0xd1ffab1e (not in unwind data) + >> End offset : 0xd1ffab1e (not in unwind data) + Code Words : 1 + Epilog Count : 0 + E bit : 1 + X bit : 0 + Vers : 0 + Function Length : 12 (0x0000c) Actual length = 48 (0x000030) + --- One epilog, unwind codes at 0 + ---- Unwind codes ---- + ---- Epilog start at index 0 ---- + 83 save_fplr_x #3 (0x03); stp fp, lr, [sp, #-32]! + E4 end
E4 end ...

-16 (-4.12%) : 179781.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.Span`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.Span`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsAction`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M57052_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M57052_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M57052_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M57052_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M57052_IG05 b G_M57052_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M57052_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M57052_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M57052_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M57052_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M57052_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M57052_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M57052_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M57052_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M57052_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=24502123) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

-16 (-4.12%) : 177355.dasm - System.AssertExtensions:AssertThrowsSystem.__Canon,int:System.__Canon (Tier0)

@@ -5,46 +5,45 @@ ; fully interruptible ; Final local variable assignments ;
-; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x60] do-not-enreg[] -; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> -; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> -; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> -; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <<unknown class>> -; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <System.__Canon> -; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd <<unknown class>>
+; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [fp+0x68] do-not-enreg[] +; V01 arg0 [V01 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[SA] multireg-arg <System.ReadOnlySpan`1[int]> +; V02 arg1 [V02 ] ( 1, 1 ) ref -> [fp+0x50] do-not-enreg[] class-hnd <System.AssertExtensions+AssertThrowsActionReadOnly`1[int]> +; V03 loc0 [V03 ] ( 1, 1 ) ref -> [fp+0x48] do-not-enreg[] must-init class-hnd <<unknown class>> +; V04 loc1 [V04 ] ( 1, 1 ) ref -> [fp+0x40] do-not-enreg[] must-init class-hnd <<unknown class>> +; V05 loc2 [V05 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd <System.__Canon> +; V06 loc3 [V06 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd <<unknown class>>
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> -; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" -; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x10] do-not-enreg[] must-init "argument with side effect" -; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x70] do-not-enreg[V] "PSPSym"
+; V08 tmp1 [V08 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillSpecialSideEff" <<unknown class>> +; V09 tmp2 [V09 ] ( 1, 1 ) ref -> [fp+0x20] do-not-enreg[] must-init "argument with side effect" +; V10 tmp3 [V10 ] ( 1, 1 ) ref -> [fp+0x18] do-not-enreg[] must-init "argument with side effect" +; V11 PSPSym [V11 ] ( 1, 1 ) long -> [fp+0x78] do-not-enreg[V] "PSPSym" +; TEMP_01 ref -> [fp+0x10]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M22620_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp add x9, fp, #16 movi v16.16b, #0 stp q16, q16, [x9]
- stp xzr, xzr, [x9, #0x20] - str xzr, [x9, #0x30]
+ stp q16, q16, [x9, #0x20]
add x4, sp, #128
- str x4, [fp, #0x70] // [V11 PSPSym] - str x0, [fp, #0x68] - str x0, [fp, #0x60] // [V00 TypeCtx] - str x1, [fp, #0x50] // [V01 arg0] - str x2, [fp, #0x58] // [V01 arg0+0x08] - str x3, [fp, #0x48] // [V02 arg1] - ;; size=60 bbWeight=1 PerfScore 13.00
+ str x4, [fp, #0x78] // [V11 PSPSym] + str x0, [fp, #0x70] + str x0, [fp, #0x68] // [V00 TypeCtx] + str x1, [fp, #0x58] // [V01 arg0] + str x2, [fp, #0x60] // [V01 arg0+0x08] + str x3, [fp, #0x50] // [V02 arg1] + ;; size=52 bbWeight=1 PerfScore 11.00
G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x1, [fp, #0x50] // [V01 arg0]
+ ldr x1, [fp, #0x58] // [V01 arg0]
; byrRegs +[x1]
- ldr x2, [fp, #0x58] // [V01 arg0+0x08] - ldr x0, [fp, #0x48] // [V02 arg1]
+ ldr x2, [fp, #0x60] // [V01 arg0+0x08] + ldr x0, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x0] ldr x0, [x0, #0x08]
- ldr x3, [fp, #0x48] // [V02 arg1]
+ ldr x3, [fp, #0x50] // [V02 arg1]
; gcrRegs +[x3] ldr x3, [x3, #0x18] ; gcrRegs -[x3] @@ -52,41 +51,41 @@ G_M22620_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0] ; byrRegs -[x1] ; gcr arg pop 0
- str xzr, [fp, #0x40] // [V03 loc0]
+ str xzr, [fp, #0x48] // [V03 loc0]
;; size=32 bbWeight=1 PerfScore 16.00 G_M22620_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x40] // [V03 loc0]
+ ldr x0, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x0]
- str x0, [fp, #0x28] // [V06 loc3] - ldr x0, [fp, #0x28] // [V06 loc3]
+ str x0, [fp, #0x30] // [V06 loc3] + ldr x0, [fp, #0x30] // [V06 loc3]
cbz x0, G_M22620_IG04
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0]
- ldr x1, [fp, #0x28] // [V06 loc3]
+ ldr x1, [fp, #0x30] // [V06 loc3]
; gcrRegs +[x1] bl CORINFO_HELP_ISINSTANCEOFANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x18] // [V09 tmp2] - ldr x1, [fp, #0x18] // [V09 tmp2]
+ str x0, [fp, #0x20] // [V09 tmp2] + ldr x1, [fp, #0x20] // [V09 tmp2]
; gcrRegs +[x1]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
; gcrRegs -[x0] ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_CHKCASTANY ; gcrRegs -[x1] +[x0] ; gcr arg pop 0
- str x0, [fp, #0x30] // [V05 loc2] - ldr x0, [fp, #0x30] // [V05 loc2]
+ str x0, [fp, #0x38] // [V05 loc2] + ldr x0, [fp, #0x38] // [V05 loc2]
cbnz x0, G_M22620_IG05 b G_M22620_IG07 ;; size=76 bbWeight=1 PerfScore 34.00 G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[x0]
- ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE @@ -103,7 +102,7 @@ G_M22620_IG04: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=40 bbWeight=0 PerfScore 0.00 G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x0, [fp, #0x30] // [V05 loc2]
+ ldr x0, [fp, #0x38] // [V05 loc2]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -112,35 +111,35 @@ G_M22620_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr wzr, [x0] blr x1 ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ str x0, [fp, #0x10] // [TEMP_01] + ldr x1, [fp, #0x68] // [V00 TypeCtx] + ldr x1, [x1, #0x38] + ldr x0, [x1]
; gcrRegs -[x0]
- ldr x0, [x0, #0x38] - ldr x0, [x0]
bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x10] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
bne G_M22620_IG07
- ldr x0, [fp, #0x30] // [V05 loc2] - ;; size=60 bbWeight=1 PerfScore 23.50
+ ldr x0, [fp, #0x38] // [V05 loc2] + ;; size=64 bbWeight=1 PerfScore 26.00
G_M22620_IG06: ; bbWeight=1, epilog, nogc, extend
- ldr x19, [sp, #0x78]
ldp fp, lr, [sp], #0x80 ret lr
- ;; size=12 bbWeight=1 PerfScore 4.00
+ ;; size=8 bbWeight=1 PerfScore 2.00
G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[x0 x19] - ldr x0, [fp, #0x60] // [V00 TypeCtx]
+ ; gcrRegs -[x0-x1] + ldr x0, [fp, #0x68] // [V00 TypeCtx]
ldr x0, [x0, #0x38] ldr x0, [x0] bl CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPE ; gcrRegs +[x0] ; gcr arg pop 0
- str x0, [fp, #0x10] // [V10 tmp3] - ldr x0, [fp, #0x10] // [V10 tmp3] - ldr x1, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x18] // [V10 tmp3] + ldr x0, [fp, #0x18] // [V10 tmp3] + ldr x1, [fp, #0x48] // [V03 loc0]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -157,37 +156,35 @@ G_M22620_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 { G_M22620_IG08: ; bbWeight=1, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, byref, funclet prolog, nogc ; gcrRegs +[x0] stp fp, lr, [sp, #-0x20]!
- str x19, [sp, #0x18]
add x3, fp, #128
- str x3, [sp, #0x10] - ;; size=16 bbWeight=1 PerfScore 3.50
+ str x3, [sp, #0x18] + ;; size=12 bbWeight=1 PerfScore 2.50
G_M22620_IG09: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0001 {x0}, byrefRegs=0000 {}, gcvars, byref, isz
- str x0, [fp, #0x20] // [V08 tmp1] - ldr x0, [fp, #0x20] // [V08 tmp1] - str x0, [fp, #0x38] // [V04 loc1] - ldr x0, [fp, #0x38] // [V04 loc1] - str x0, [fp, #0x40] // [V03 loc0]
+ str x0, [fp, #0x28] // [V08 tmp1] + ldr x0, [fp, #0x28] // [V08 tmp1] + str x0, [fp, #0x40] // [V04 loc1] + ldr x0, [fp, #0x40] // [V04 loc1] + str x0, [fp, #0x48] // [V03 loc0]
adr x0, [G_M22620_IG03] ; gcrRegs -[x0] ;; size=24 bbWeight=1 PerfScore 7.50 G_M22620_IG10: ; bbWeight=1, funclet epilog, nogc, extend
- ldr x19, [sp, #0x18]
ldp fp, lr, [sp], #0x20 ret lr
- ;; size=12 bbWeight=1 PerfScore 6.00
+ ;; size=8 bbWeight=1 PerfScore 4.00
-; Total bytes of code 388, prolog size 60, PerfScore 107.50, instruction count 97, allocated bytes for code 388 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
+; Total bytes of code 372, prolog size 52, PerfScore 103.00, instruction count 93, allocated bytes for code 372 (MethodHash=0395a7a3) for method System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
; ============================================================ Unwind Info: >> Start offset : 0x000000 (not in unwind data) >> End offset : 0xd1ffab1e (not in unwind data)
- Code Words : 2
+ Code Words : 1
Epilog Count : 1 E bit : 0 X bit : 0 Vers : 0
- Function Length : 84 (0x00054) Actual length = 336 (0x000150)
+ Function Length : 82 (0x00052) Actual length = 328 (0x000148)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e) @@ -195,12 +192,9 @@ Unwind Info: ---- Unwind codes ---- E1 set_fp; mov fp, sp ---- Epilog start at index 1 ----
- D0 0F save_reg X#0 Z#15 (0x0F); str x19, [sp, #120]
8F save_fplr_x #15 (0x0F); stp fp, lr, [sp, #-128]! E4 end E4 end
- E4 end - E4 end
Unwind Info: >> Start offset : 0xd1ffab1e (not in unwind data) @@ -210,13 +204,14 @@ Unwind Info: E bit : 1 ...

+12 (+12.50%) : 426748.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)

@@ -24,28 +24,31 @@ G_M27621_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str x0, [fp, #0x38] // [V00 this] ;; size=28 bbWeight=1 PerfScore 6.50 G_M27621_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr d0, [fp, #0x30] // [V01 arg1]
+ ldr d16, [fp, #0x30] // [V01 arg1] + fmov d0, d16
movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0 str d0, [fp, #0x18] // [V04 loc0]
- ldr d0, [fp, #0x28] // [V02 arg2] - ldr d2, [fp, #0x20] // [V03 arg3]
+ ldr d16, [fp, #0x28] // [V02 arg2] + fmov d0, d16 + ldr d16, [fp, #0x20] // [V03 arg3] + fmov d2, d16
ldr d1, [fp, #0x18] // [V04 loc0] movz x0, #0xD1FFAB1E // code for <unknown method> movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 ldr x0, [x0] blr x0
- ;; size=60 bbWeight=1 PerfScore 20.00
+ ;; size=72 bbWeight=1 PerfScore 21.50
G_M27621_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x40 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 96, prolog size 12, PerfScore 28.50, instruction count 24, allocated bytes for code 96 (MethodHash=cc6f941a) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
+; Total bytes of code 108, prolog size 12, PerfScore 30.00, instruction count 27, allocated bytes for code 108 (MethodHash=cc6f941a) for method System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
; ============================================================ Unwind Info: @@ -56,7 +59,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 24 (0x00018) Actual length = 96 (0x000060)
+ Function Length : 27 (0x0001b) Actual length = 108 (0x00006c)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+14.29%) : 361959.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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 (+14.29%) : 362704.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator1[double]:Invoke(System.Runtime.Intrinsics.Vector1281[double]):double (Instrumented Tier0)

@@ -16,15 +16,16 @@ G_M29631_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, str q0, [fp, #0x10] // [V00 arg0] ;; size=12 bbWeight=1 PerfScore 2.50 G_M29631_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr q0, [fp, #0x10] // [V00 arg0] - faddp d0, v0.2d - ;; size=8 bbWeight=1 PerfScore 5.00
+ ldr q16, [fp, #0x10] // [V00 arg0] + faddp d16, v16.2d + dup d0, v16.d[0] + ;; size=12 bbWeight=1 PerfScore 6.00
G_M29631_IG03: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x20 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 8, PerfScore 9.50, instruction count 7, allocated bytes for code 28 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
+; Total bytes of code 32, prolog size 8, PerfScore 10.50, instruction count 8, allocated bytes for code 32 (MethodHash=b5d28c40) for method System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -35,7 +36,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 7 (0x00007) Actual length = 28 (0x00001c)
+ 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)

librariestestsnotieredcompilation.run.windows.arm64.Release.mch

-8 (-1.57%) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)

@@ -7,39 +7,38 @@ ; No matching PGO data ; Final local variable assignments ;
-; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x70] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> -; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x60] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x50] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> -; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init -; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x48] do-not-enreg[] must-init -; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x44] do-not-enreg[] must-init
+; V00 this [V00 ] ( 1, 1 ) ref -> [fp+0x78] do-not-enreg[] this class-hnd <Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]> +; V01 arg1 [V01 ] ( 1, 1 ) struct (16) [fp+0x68] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V02 arg2 [V02 ] ( 1, 1 ) struct (16) [fp+0x58] do-not-enreg[XSFA] multireg-arg addr-exposed <System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]> +; V03 loc0 [V03 ] ( 1, 1 ) ubyte -> [fp+0x54] do-not-enreg[] must-init +; V04 loc1 [V04 ] ( 1, 1 ) ubyte -> [fp+0x50] do-not-enreg[] must-init +; V05 loc2 [V05 ] ( 1, 1 ) ubyte -> [fp+0x4C] do-not-enreg[] must-init
;# V06 OutArgs [V06 ] ( 1, 1 ) struct ( 0) [sp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x40] do-not-enreg[] "impSpillStackEnsure" -; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x3C] do-not-enreg[] must-init -; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x28] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> -; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] must-init -; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" -; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x1C] do-not-enreg[] "impSpillStackEnsure" -; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x18] do-not-enreg[] "impSpillStackEnsure"
+; V07 tmp1 [V07 ] ( 1, 1 ) int -> [fp+0x48] do-not-enreg[] "impSpillStackEnsure" +; V08 tmp2 [V08 ] ( 1, 1 ) int -> [fp+0x44] do-not-enreg[] must-init +; V09 tmp3 [V09 ] ( 1, 1 ) ref -> [fp+0x38] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V10 tmp4 [V10 ] ( 1, 1 ) ref -> [fp+0x30] do-not-enreg[] must-init class-hnd "impSpillStackEnsure" <<unknown class>> +; V11 tmp5 [V11 ] ( 1, 1 ) int -> [fp+0x2C] do-not-enreg[] must-init +; V12 tmp6 [V12 ] ( 1, 1 ) int -> [fp+0x28] do-not-enreg[] "impSpillStackEnsure" +; V13 tmp7 [V13 ] ( 1, 1 ) int -> [fp+0x24] do-not-enreg[] "impSpillStackEnsure" +; V14 tmp8 [V14 ] ( 1, 1 ) int -> [fp+0x20] do-not-enreg[] "impSpillStackEnsure" +; TEMP_01 ref -> [fp+0x18]
;
-; Lcl frame size = 104
+; Lcl frame size = 112
G_M13185_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG stp fp, lr, [sp, #-0x80]!
- str x19, [sp, #0x78]
mov fp, sp
- add x9, fp, #36
+ add x9, fp, #24
movi v16.16b, #0 stp q16, q16, [x9]
- str xzr, [x9, #0x20] - str wzr, [x9, #0x28] - str x0, [fp, #0x70] // [V00 this] - str x1, [fp, #0x60] // [V01 arg1] - str x2, [fp, #0x68] // [V01 arg1+0x08] - str x3, [fp, #0x50] // [V02 arg2] - str x4, [fp, #0x58] // [V02 arg2+0x08] - ;; size=52 bbWeight=1 PerfScore 11.50
+ stp q16, q16, [x9, #0x20] + str x0, [fp, #0x78] // [V00 this] + str x1, [fp, #0x68] // [V01 arg1] + str x2, [fp, #0x70] // [V01 arg1+0x08] + str x3, [fp, #0x58] // [V02 arg2] + str x4, [fp, #0x60] // [V02 arg2+0x08] + ;; size=44 bbWeight=1 PerfScore 9.50
G_M13185_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 @@ -53,9 +52,9 @@ G_M13185_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x0, [fp, #0x60] // [V01 arg1]
+ ldr x0, [fp, #0x68] // [V01 arg1]
; gcrRegs +[x0]
- ldr x1, [fp, #0x50] // [V02 arg2]
+ ldr x1, [fp, #0x58] // [V02 arg2]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -64,49 +63,48 @@ G_M13185_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x40] // [V07 tmp1] - ldr w1, [fp, #0x40] // [V07 tmp1] - uxtb w1, w1 - str w1, [fp, #0x4C] // [V03 loc0] - ldr w1, [fp, #0x4C] // [V03 loc0] - cbz w1, G_M13185_IG05
+ str w0, [fp, #0x48] // [V07 tmp1] + ldr w0, [fp, #0x48] // [V07 tmp1] + uxtb w0, w0 + str w0, [fp, #0x54] // [V03 loc0] + ldr w0, [fp, #0x54] // [V03 loc0] + cbz w0, G_M13185_IG05
nop
- str wzr, [fp, #0x48] // [V04 loc1]
+ str wzr, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11 ;; size=72 bbWeight=1 PerfScore 20.50 G_M13185_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x1, [fp, #0x68] // [V01 arg1+0x08] - ; gcrRegs +[x1] - cbz x1, G_M13185_IG06 - ldr x1, [fp, #0x58] // [V02 arg2+0x08] - cmp x1, #0 - cset x1, eq - ; gcrRegs -[x1] - str w1, [fp, #0x3C] // [V08 tmp2]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08] + ; gcrRegs +[x0] + cbz x0, G_M13185_IG06 + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + cmp x0, #0 + cset x0, eq + ; gcrRegs -[x0] + str w0, [fp, #0x44] // [V08 tmp2]
b G_M13185_IG07 ;; size=28 bbWeight=1 PerfScore 8.00 G_M13185_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov w1, #1 - str w1, [fp, #0x3C] // [V08 tmp2]
+ mov w0, #1 + str w0, [fp, #0x44] // [V08 tmp2]
;; size=8 bbWeight=1 PerfScore 1.50 G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr w1, [fp, #0x3C] // [V08 tmp2] - uxtb w1, w1 - str w1, [fp, #0x44] // [V05 loc2] - ldr w1, [fp, #0x44] // [V05 loc2] - cbz w1, G_M13185_IG08
+ ldr w0, [fp, #0x44] // [V08 tmp2] + uxtb w0, w0 + str w0, [fp, #0x4C] // [V05 loc2] + ldr w0, [fp, #0x4C] // [V05 loc2] + cbz w0, G_M13185_IG08
nop
- add x1, fp, #96 // [V01 arg1]
+ add x1, fp, #104 // [V01 arg1]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- mov x19, x0 - ; gcrRegs +[x19] - add x1, fp, #80 // [V02 arg2]
+ str x0, [fp, #0x18] // [TEMP_01] + add x1, fp, #88 // [V02 arg2]
movz x0, #0xD1FFAB1E ; gcrRegs -[x0] movk x0, #0xD1FFAB1E LSL #16 @@ -114,18 +112,20 @@ G_M13185_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, bl CORINFO_HELP_BOX ; gcrRegs +[x0] ; gcr arg pop 0
- cmp x19, x0
+ ldr x1, [fp, #0x18] // [TEMP_01] + ; gcrRegs +[x1] + cmp x1, x0
cset x0, eq ; gcrRegs -[x0]
- str w0, [fp, #0x48] // [V04 loc1]
+ str w0, [fp, #0x50] // [V04 loc1]
nop b G_M13185_IG11
- ;; size=88 bbWeight=1 PerfScore 17.00
+ ;; size=92 bbWeight=1 PerfScore 19.50
G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x19] - ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ; gcrRegs -[x1] + ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x1, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -133,9 +133,9 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x30] // [V09 tmp3] - ldr x0, [fp, #0x58] // [V02 arg2+0x08] - ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ str x0, [fp, #0x38] // [V09 tmp3] + ldr x0, [fp, #0x60] // [V02 arg2+0x08] + ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] ldr x1, [x1] ; gcrRegs -[x1] @@ -143,13 +143,13 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1, #0x20] blr x1 ; gcr arg pop 0
- str x0, [fp, #0x28] // [V10 tmp4] - ldr x0, [fp, #0x30] // [V09 tmp3] - ldr x1, [fp, #0x28] // [V10 tmp4]
+ str x0, [fp, #0x30] // [V10 tmp4] + ldr x0, [fp, #0x38] // [V09 tmp3] + ldr x1, [fp, #0x30] // [V10 tmp4]
; gcrRegs +[x1] cmp x0, x1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
movz x1, #0xD1FFAB1E // code for <unknown method> ; gcrRegs -[x1] movk x1, #0xD1FFAB1E LSL #16 @@ -159,8 +159,8 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x20] // [V12 tmp6] - ldr x0, [fp, #0x58] // [V02 arg2+0x08]
+ str w0, [fp, #0x28] // [V12 tmp6] + ldr x0, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> movk x1, #0xD1FFAB1E LSL #16 @@ -170,14 +170,14 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x1 ; gcrRegs -[x0] ; gcr arg pop 0
- str w0, [fp, #0x1C] // [V13 tmp7] - ldr w0, [fp, #0x20] // [V12 tmp6] - ldr w1, [fp, #0x1C] // [V13 tmp7]
+ str w0, [fp, #0x24] // [V13 tmp7] + ldr w0, [fp, #0x28] // [V12 tmp6] + ldr w1, [fp, #0x24] // [V13 tmp7]
cmp w0, w1 bne G_M13185_IG09
- ldr x0, [fp, #0x68] // [V01 arg1+0x08]
+ ldr x0, [fp, #0x70] // [V01 arg1+0x08]
; gcrRegs +[x0]
- ldr x1, [fp, #0x58] // [V02 arg2+0x08]
+ ldr x1, [fp, #0x60] // [V02 arg2+0x08]
; gcrRegs +[x1] movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 @@ -187,41 +187,40 @@ G_M13185_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, blr x2 ; gcrRegs -[x0-x1] ; gcr arg pop 0
- str w0, [fp, #0x18] // [V14 tmp8] - ldr w0, [fp, #0x18] // [V14 tmp8] - str w0, [fp, #0x24] // [V11 tmp5]
+ str w0, [fp, #0x20] // [V14 tmp8] + ldr w0, [fp, #0x20] // [V14 tmp8] + str w0, [fp, #0x2C] // [V11 tmp5]
...

+0 (0.00%) : 2117.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1[System.__Canon]:.ctor():this (MinOpts)

@@ -124,15 +124,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x5 ; gcrRegs -[x0-x4] ; gcr arg pop 0
- ldr x14, [fp, #0x70] // [V02 tmp1] - ; gcrRegs +[x14] - add x14, x14, #144 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x70] // [V02 tmp1] + ; gcrRegs +[x0] + add x14, x0, #144
; byrRegs +[x14] ldr x15, [fp, #0x48] // [V07 tmp6] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14] ldr x0, [fp, #0x78] // [V00 this] ; gcrRegs +[x0] @@ -201,15 +200,14 @@ G_M24887_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref blr x5 ; gcrRegs -[x0-x4] ; gcr arg pop 0
- ldr x14, [fp, #0x40] // [V08 tmp7] - ; gcrRegs +[x14] - add x14, x14, #152 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V08 tmp7] + ; gcrRegs +[x0] + add x14, x0, #152
; byrRegs +[x14] ldr x15, [fp, #0x18] // [V13 tmp12] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14] nop ;; size=428 bbWeight=1 PerfScore 184.00

+0 (0.00%) : 2145.dasm - Microsoft.CodeAnalysis.Testing.PackageIdentity:.ctor(System.String,System.String):this (MinOpts)

@@ -61,20 +61,20 @@ G_M36042_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcr arg pop 0 nop nop
- ldr x14, [fp, #0x88] // [V00 this] - ; gcrRegs +[x14] - str x14, [fp, #0x70] // [V04 tmp1] - ldr x14, [fp, #0x80] // [V01 arg1] - str x14, [fp, #0x68] // [V05 tmp2] - ldr x14, [fp, #0x70] // [V04 tmp1] - str x14, [fp, #0x60] // [V06 tmp3] - ldr x14, [fp, #0x68] // [V05 tmp2] - str x14, [fp, #0x58] // [V07 tmp4] - ldr x14, [fp, #0x80] // [V01 arg1] - cbnz x14, G_M36042_IG06
+ ldr x0, [fp, #0x88] // [V00 this] + ; gcrRegs +[x0] + str x0, [fp, #0x70] // [V04 tmp1] + ldr x0, [fp, #0x80] // [V01 arg1] + str x0, [fp, #0x68] // [V05 tmp2] + ldr x0, [fp, #0x70] // [V04 tmp1] + str x0, [fp, #0x60] // [V06 tmp3] + ldr x0, [fp, #0x68] // [V05 tmp2] + str x0, [fp, #0x58] // [V07 tmp4] + ldr x0, [fp, #0x80] // [V01 arg1] + cbnz x0, G_M36042_IG06
;; size=72 bbWeight=1 PerfScore 23.50 G_M36042_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14]
+ ; gcrRegs -[x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -108,30 +108,29 @@ G_M36042_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=80 bbWeight=0 PerfScore 0.00 G_M36042_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ldr x14, [fp, #0x60] // [V06 tmp3] - ; gcrRegs +[x14] - add x14, x14, #8 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x60] // [V06 tmp3] + ; gcrRegs +[x0] + add x14, x0, #8
; byrRegs +[x14] ldr x15, [fp, #0x58] // [V07 tmp4] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14]
- ldr x14, [fp, #0x88] // [V00 this] - ; gcrRegs +[x14] - str x14, [fp, #0x50] // [V08 tmp5] - ldr x14, [fp, #0x78] // [V02 arg2] - str x14, [fp, #0x48] // [V09 tmp6] - ldr x14, [fp, #0x50] // [V08 tmp5] - str x14, [fp, #0x40] // [V10 tmp7] - ldr x14, [fp, #0x48] // [V09 tmp6] - str x14, [fp, #0x38] // [V11 tmp8] - ldr x14, [fp, #0x78] // [V02 arg2] - cbnz x14, G_M36042_IG08
+ ldr x0, [fp, #0x88] // [V00 this] + ; gcrRegs +[x0] + str x0, [fp, #0x50] // [V08 tmp5] + ldr x0, [fp, #0x78] // [V02 arg2] + str x0, [fp, #0x48] // [V09 tmp6] + ldr x0, [fp, #0x50] // [V08 tmp5] + str x0, [fp, #0x40] // [V10 tmp7] + ldr x0, [fp, #0x48] // [V09 tmp6] + str x0, [fp, #0x38] // [V11 tmp8] + ldr x0, [fp, #0x78] // [V02 arg2] + cbnz x0, G_M36042_IG08
;; size=56 bbWeight=1 PerfScore 20.50 G_M36042_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x14]
+ ; gcrRegs -[x0]
movz x0, #0xD1FFAB1E movk x0, #0xD1FFAB1E LSL #16 movk x0, #0xD1FFAB1E LSL #32 @@ -165,15 +164,14 @@ G_M36042_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 ;; size=80 bbWeight=0 PerfScore 0.00 G_M36042_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ldr x14, [fp, #0x40] // [V10 tmp7] - ; gcrRegs +[x14] - add x14, x14, #16 - ; gcrRegs -[x14]
+ ldr x0, [fp, #0x40] // [V10 tmp7] + ; gcrRegs +[x0] + add x14, x0, #16
; byrRegs +[x14] ldr x15, [fp, #0x38] // [V11 tmp8] ; gcrRegs +[x15] bl CORINFO_HELP_ASSIGN_REF
- ; gcrRegs -[x15]
+ ; gcrRegs -[x0 x15]
; byrRegs -[x14] nop ;; size=20 bbWeight=1 PerfScore 6.00

+4 (+2.50%) : 291660.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|2_0(byref,byref,int,int) (MinOpts)

@@ -36,25 +36,26 @@ G_M12365_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M12365_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - adds w1, w1, #1
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + adds w0, w0, #1
bvc G_M12365_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 8.00 G_M12365_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M12365_IG06 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=24 bbWeight=1 PerfScore 6.50 G_M12365_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -76,13 +77,13 @@ G_M12365_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=56 bbWeight=1 PerfScore 18.00
+ ;; size=60 bbWeight=1 PerfScore 18.50
G_M12365_IG07: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 160, prolog size 24, PerfScore 46.00, instruction count 40, allocated bytes for code 160 (MethodHash=97c8cfb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
+; Total bytes of code 164, prolog size 24, PerfScore 46.50, instruction count 41, allocated bytes for code 164 (MethodHash=97c8cfb2) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
; ============================================================ Unwind Info: @@ -93,7 +94,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 40 (0x00028) Actual length = 160 (0x0000a0)
+ Function Length : 41 (0x00029) Actual length = 164 (0x0000a4)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 282855.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|83_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M48747_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M48747_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M48747_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M48747_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M48747_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M48747_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=44774194) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=44774194) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

+4 (+2.86%) : 292211.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035AUtilities:gWithResize|35_0(byref,byref,int) (MinOpts)

@@ -34,19 +34,20 @@ G_M42150_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=4 bbWeight=0.50 PerfScore 0.50 G_M42150_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- ldr x1, [fp, #0x20] // [V01 arg1] - ; byrRegs +[x1] - ldr w1, [x1] - ; byrRegs -[x1] - mov w0, #2 - smull x1, w1, w0 - lsr x2, x1, #32 - cmp w2, w1, ASR #31
+ ldr x0, [fp, #0x20] // [V01 arg1] + ; byrRegs +[x0] + ldr w0, [x0] + ; byrRegs -[x0] + mov w1, #2 + smull x0, w0, w1 + lsr x2, x0, #32 + cmp w2, w0, ASR #31
beq G_M42150_IG05 bl CORINFO_HELP_OVERFLOW ; gcr arg pop 0 ;; size=36 bbWeight=1 PerfScore 12.00 G_M42150_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov w1, w0
ldr x0, [fp, #0x28] // [V00 arg0] ; byrRegs +[x0] movz x2, #0xD1FFAB1E // code for <unknown method> @@ -67,13 +68,13 @@ G_M42150_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 nop nop
- ;; size=52 bbWeight=1 PerfScore 16.00
+ ;; size=56 bbWeight=1 PerfScore 16.50
G_M42150_IG06: ; bbWeight=1, epilog, nogc, extend ldp fp, lr, [sp], #0x30 ret lr ;; size=8 bbWeight=1 PerfScore 2.00
-; Total bytes of code 140, prolog size 20, PerfScore 40.50, instruction count 35, allocated bytes for code 140 (MethodHash=f91e5b59) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
+; Total bytes of code 144, prolog size 20, PerfScore 41.00, instruction count 36, allocated bytes for code 144 (MethodHash=f91e5b59) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
; ============================================================ Unwind Info: @@ -84,7 +85,7 @@ Unwind Info: E bit : 0 X bit : 0 Vers : 0
- Function Length : 35 (0x00023) Actual length = 140 (0x00008c)
+ Function Length : 36 (0x00024) Actual length = 144 (0x000090)
---- Epilog scopes ---- ---- Scope 0 Epilog Start Offset : 3523193630 (0xd1ffab1e) Actual offset = 3523193630 (0xd1ffab1e) Offset from main function begin = 3523193630 (0xd1ffab1e)

realworld.run.windows.arm64.checked.mch

+0 (0.00%) : 4498.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

@@ -2602,41 +2602,39 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V11 loc9]
- ldr x2, [fp, #0xD1FFAB1E] // [V11 loc9] - ; gcrRegs +[x2] - cbz x2, G_M23076_IG09 - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ldrb w2, [x2, #0x40] - ; gcrRegs -[x2]
+ ldr x0, [fp, #0xD1FFAB1E] // [V11 loc9] + cbz x0, G_M23076_IG09 + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ldrb w0, [x0, #0x40] + ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V73 tmp3]
+ str w0, [fp, xip1] // [V73 tmp3]
b G_M23076_IG10 ;; size=152 bbWeight=1 PerfScore 45.50 G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[x0]
mov xip1, #0xD1FFAB1E str wzr, [fp, xip1] // [V73 tmp3] ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov xip1, #0xD1FFAB1E
- ldr w2, [fp, xip1] // [V73 tmp3] - uxtb w2, w2
+ ldr w0, [fp, xip1] // [V73 tmp3] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w2, [fp, xip1] // [V09 loc7] - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ; gcrRegs +[x2] - ldr x2, [x2, #0x30] - str x2, [fp, #0xD1FFAB1E] // [V12 loc10] - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ldr w2, [x2, #0x38] - ; gcrRegs -[x2] - cmp w2, #0 - bgt G_M23076_IG27 - ldr x2, [fp, #0xD1FFAB1E] // [V71 tmp1] - ; gcrRegs +[x2] - ldr x2, [x2, #0x30]
+ str w0, [fp, xip1] // [V09 loc7]
ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] ; gcrRegs +[x0]
+ ldr x0, [x0, #0x30] + str x0, [fp, #0xD1FFAB1E] // [V12 loc10] + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ldr w0, [x0, #0x38] + ; gcrRegs -[x0] + cmp w0, #0 + bgt G_M23076_IG27 + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1] + ; gcrRegs +[x0] + ldr x2, [x0, #0x30] + ; gcrRegs +[x2] + ldr x0, [fp, #0xD1FFAB1E] // [V71 tmp1]
ldr x1, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x1] movz x3, #0xD1FFAB1E // code for <unknown method> @@ -3975,27 +3973,27 @@ G_M23076_IG51: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[x0] cmp w0, #197 bne G_M23076_IG54
- ldr x1, [fp, #0xD1FFAB1E] // [V02 loc0] - ; gcrRegs +[x1] - add x1, x1, #16 - ; gcrRegs -[x1] - ; byrRegs +[x1]
+ ldr x0, [fp, #0xD1FFAB1E] // [V02 loc0] + ; gcrRegs +[x0] + add x0, x0, #16 + ; gcrRegs -[x0] + ; byrRegs +[x0]
;; size=68 bbWeight=1 PerfScore 22.00 G_M23076_IG52: ; bbWeight=1, nogc, extend
- add x0, x1, #20
+ add x1, x0, #20
mov x2, #0xD1FFAB1E add x2, fp, x2
- ldp x3, xip1, [x0]
+ ldp x3, xip1, [x1]
stp x3, xip1, [x2]
- ldr w3, [x0, #0x10]
+ ldr w3, [x1, #0x10]
str w3, [x2, #0x10] ;; size=28 bbWeight=1 PerfScore 10.50 G_M23076_IG53: ; bbWeight=1, extend mov xip1, #0xD1FFAB1E add x1, fp, xip1 // [V1653 tmp1583]
- ; byrRegs -[x1]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x0]
+ ; byrRegs -[x0]
movz x2, #0xD1FFAB1E // code for <unknown method> movk x2, #0xD1FFAB1E LSL #16 movk x2, #0xD1FFAB1E LSL #32 @@ -17589,8 +17587,8 @@ G_M23076_IG1254: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289]
- ldr w1, [fp, #0xD1FFAB1E] // [V2359 tmp2289] - cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289] + cmp w0, #26
bhi G_M23076_IG1255 ldr w0, [fp, #0xD1FFAB1E] // [V2359 tmp2289] mov w0, w0 @@ -21080,9 +21078,9 @@ G_M23076_IG1570: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #19 bne G_M23076_IG1571
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V325 tmp255]
+ str w0, [fp, xip1] // [V325 tmp255]
b G_M23076_IG1572 ;; size=68 bbWeight=1 PerfScore 17.50 G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -21091,8 +21089,8 @@ G_M23076_IG1571: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG1572: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V325 tmp255] - cbz w1, G_M23076_IG4955
+ ldr w0, [fp, xip1] // [V325 tmp255] + cbz w0, G_M23076_IG4955
b G_M23076_IG4944 ;; size=16 bbWeight=1 PerfScore 4.50 G_M23076_IG1573: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -26738,8 +26736,8 @@ G_M23076_IG1990: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299]
- ldr w1, [fp, #0xD1FFAB1E] // [V2369 tmp2299] - cmp w1, #26
+ ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299] + cmp w0, #26
bhi G_M23076_IG1991 ldr w0, [fp, #0xD1FFAB1E] // [V2369 tmp2299] mov w0, w0 @@ -62289,8 +62287,8 @@ G_M23076_IG4956: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre blr x1 ; gcrRegs -[x0] str w0, [fp, #0x60] // [V2422 tmp2352]
- ldr w1, [fp, #0x60] // [V2422 tmp2352] - cmp w1, #26
+ ldr w0, [fp, #0x60] // [V2422 tmp2352] + cmp w0, #26
bhi G_M23076_IG4957 ldr w0, [fp, #0x60] // [V2422 tmp2352] mov w0, w0 @@ -62321,10 +62319,10 @@ G_M23076_IG4960: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4961: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V267 tmp197] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V267 tmp197] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4962: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -62450,9 +62448,9 @@ G_M23076_IG4969: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #25 bne G_M23076_IG4970
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V444 tmp374]
+ str w0, [fp, xip1] // [V444 tmp374]
b G_M23076_IG4971 ;; size=48 bbWeight=1 PerfScore 12.00 G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -62461,10 +62459,10 @@ G_M23076_IG4970: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4971: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V444 tmp374] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V444 tmp374] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V19 loc17]
+ str w0, [fp, xip1] // [V19 loc17]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4972: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -62592,9 +62590,9 @@ G_M23076_IG4979: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ; gcrRegs -[x0] cmp w0, #25 bne G_M23076_IG4980
- mov w1, #1
+ mov w0, #1
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V131 tmp61]
+ str w0, [fp, xip1] // [V131 tmp61]
b G_M23076_IG4981 ;; size=48 bbWeight=1 PerfScore 12.00 G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -62603,10 +62601,10 @@ G_M23076_IG4980: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ;; size=8 bbWeight=1 PerfScore 1.50 G_M23076_IG4981: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov xip1, #0xD1FFAB1E
- ldr w1, [fp, xip1] // [V131 tmp61] - uxtb w1, w1
+ ldr w0, [fp, xip1] // [V131 tmp61] + uxtb w0, w0
mov xip1, #0xD1FFAB1E
- str w1, [fp, xip1] // [V55 loc53]
+ str w0, [fp, xip1] // [V55 loc53]
;; size=20 bbWeight=1 PerfScore 4.50 G_M23076_IG4982: ; bbWeight=1, nogc, extend mov x0, #0xD1FFAB1E @@ -64075,13 +64073,12 @@ G_M23076_IG5065: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62] - ; gcrRegs +[x1] - cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62] + cbz x0, G_M23076_IG5099
b G_M23076_IG5090 ;; size=40 bbWeight=1 PerfScore 12.50 G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[x0-x1]
+ ; gcrRegs -[x0]
ldr x0, [fp, #0xD1FFAB1E] // [V04 loc2] ; gcrRegs +[x0] movz x1, #0xD1FFAB1E // code for <unknown method> @@ -64090,13 +64087,12 @@ G_M23076_IG5066: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre ldr x1, [x1] blr x1 str x0, [fp, #0xD1FFAB1E] // [V64 loc62]
- ldr x1, [fp, #0xD1FFAB1E] // [V64 loc62] - ; gcrRegs +[x1] - cbz x1, G_M23076_IG5099
+ ldr x0, [fp, #0xD1FFAB1E] // [V64 loc62] + cbz x0, G_M23076_IG5099
b G_M23076_IG5090 ;; size=40 bbWeight=1 PerfScore 12.50 ...

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.arm64.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.arm64.checked.mch 17,272 238 502 16,532 -1,820 +2,808
benchmarks.run_tiered.windows.arm64.checked.mch 13,406 231 384 12,791 -1,748 +2,132
coreclr_tests.run.windows.arm64.checked.mch 145,366 4,434 6,992 133,940 -36,032 +179,660
libraries.crossgen2.windows.arm64.checked.mch 5 0 0 5 -0 +0
libraries.pmi.windows.arm64.checked.mch 1 0 0 1 -0 +0
libraries_tests.run.windows.arm64.Release.mch 176,837 526 1,746 174,565 -6,428 +9,428
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 11,765 1 30 11,734 -8 +120
realworld.run.windows.arm64.checked.mch 1 0 0 1 -0 +0
smoke_tests.nativeaot.windows.arm64.checked.mch 0 0 0 0 -0 +0
364,653 5,430 9,654 349,569 -46,036 +194,148

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.arm64.checked.mch 24,217 4 24,213 230 (0.94%) 230 (0.94%)
benchmarks.run_pgo.windows.arm64.checked.mch 96,879 48,066 48,813 104 (0.11%) 104 (0.11%)
benchmarks.run_tiered.windows.arm64.checked.mch 48,412 36,693 11,719 61 (0.13%) 61 (0.13%)
coreclr_tests.run.windows.arm64.checked.mch 595,261 362,539 232,722 442 (0.07%) 442 (0.07%)
libraries.crossgen2.windows.arm64.checked.mch 243,831 15 243,816 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.arm64.checked.mch 302,812 6 302,806 2,059 (0.68%) 2,059 (0.68%)
libraries_tests.run.windows.arm64.Release.mch 625,153 460,799 164,354 901 (0.14%) 901 (0.14%)
librariestestsnotieredcompilation.run.windows.arm64.Release.mch 314,854 21,559 293,295 2,183 (0.69%) 2,183 (0.69%)
realworld.run.windows.arm64.checked.mch 32,874 3 32,871 370 (1.11%) 370 (1.11%)
smoke_tests.nativeaot.windows.arm64.checked.mch 24,152 8 24,144 3 (0.01%) 3 (0.01%)
2,308,445 929,692 1,378,753 6,353 (0.27%) 6,353 (0.27%)

jit-analyze output

benchmarks.run_pgo.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 46475100 (overridden on cmd)
Total bytes of diff: 46476088 (overridden on cmd)
Total bytes of delta: 988 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 2112.dasm (36.19 % of base)
         152 : 23108.dasm (33.63 % of base)
          68 : 75733.dasm (39.53 % of base)
          48 : 72247.dasm (0.74 % of base)
          40 : 90862.dasm (1.60 % of base)
          40 : 90857.dasm (1.60 % of base)
          24 : 23520.dasm (0.32 % of base)
          24 : 28757.dasm (0.32 % of base)
          24 : 30375.dasm (1.35 % of base)
          16 : 15196.dasm (1.05 % of base)
          16 : 40249.dasm (2.26 % of base)
          16 : 44057.dasm (1.80 % of base)
          16 : 46753.dasm (1.09 % of base)
          16 : 49134.dasm (0.42 % of base)
          16 : 70707.dasm (0.99 % of base)
          16 : 19085.dasm (3.54 % of base)
          16 : 5104.dasm (1.76 % of base)
          16 : 66988.dasm (4.94 % of base)
          12 : 1240.dasm (0.50 % of base)
          12 : 81329.dasm (1.13 % of base)

Top file improvements (bytes):
         -24 : 15736.dasm (-1.16 % of base)
         -20 : 9669.dasm (-1.37 % of base)
         -16 : 22845.dasm (-0.29 % of base)
         -16 : 55172.dasm (-0.93 % of base)
         -16 : 7476.dasm (-0.14 % of base)
         -16 : 70478.dasm (-2.13 % of base)
         -16 : 8569.dasm (-0.56 % of base)
         -12 : 19650.dasm (-3.66 % of base)
         -12 : 24822.dasm (-1.07 % of base)
         -12 : 11177.dasm (-1.45 % of base)
         -12 : 68376.dasm (-2.83 % of base)
         -12 : 11687.dasm (-0.13 % of base)
         -12 : 68771.dasm (-2.05 % of base)
          -8 : 26153.dasm (-7.14 % of base)
          -8 : 27037.dasm (-7.14 % of base)
          -8 : 28221.dasm (-5.71 % of base)
          -8 : 28321.dasm (-7.14 % of base)
          -8 : 30281.dasm (-7.14 % of base)
          -8 : 33801.dasm (-7.14 % of base)
          -8 : 33845.dasm (-7.14 % of base)

71 total files with Code Size differences (35 improved, 36 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (33.63 % of base) : 23108.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
         152 (36.19 % of base) : 2112.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 75733.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          48 (0.74 % of base) : 72247.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
          40 (1.60 % of base) : 90862.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          40 (1.60 % of base) : 90857.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Instrumented Tier0)
          24 (0.32 % of base) : 28757.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (0.32 % of base) : 23520.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Instrumented Tier0)
          24 (1.35 % of base) : 30375.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.42 % of base) : 49134.dasm - Neural:read_data_file():this (Instrumented Tier0)
          16 (1.09 % of base) : 46753.dasm - NeuralJagged:Init() (Instrumented Tier0)
          16 (1.76 % of base) : 5104.dasm - System.Globalization.CultureInfo:GetUserDefaultUICulture():System.Globalization.CultureInfo (Tier0)
          16 (0.99 % of base) : 70707.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Instrumented Tier0)
          16 (1.05 % of base) : 15196.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 66988.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (1.80 % of base) : 44057.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Instrumented Tier0)
          16 (2.26 % of base) : 40249.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Instrumented Tier0)
          16 (3.54 % of base) : 19085.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.13 % of base) : 81329.dasm - Interop+Crypt32:FindOidInfo(int,System.String,int,ubyte):Interop+Crypt32+CRYPT_OID_INFO (Tier0)
          12 (0.50 % of base) : 1240.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)

Top method improvements (bytes):
         -24 (-1.16 % of base) : 15736.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Instrumented Tier0)
         -20 (-1.37 % of base) : 9669.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
         -16 (-0.29 % of base) : 22845.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.93 % of base) : 55172.dasm - Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2[System.__Canon,System.__Canon]:.ctor(System.Collections.Generic.IDictionary`2[System.__Canon,System.__Canon],System.Collections.Generic.IEqualityComparer`1[System.__Canon]):this (Instrumented Tier0)
         -16 (-0.56 % of base) : 8569.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Instrumented Tier0)
         -16 (-0.14 % of base) : 7476.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Instrumented Tier0)
         -16 (-2.13 % of base) : 70478.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.05 % of base) : 68771.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
         -12 (-2.83 % of base) : 68376.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 19650.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 24822.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 11177.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 11687.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-7.14 % of base) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-6.67 % of base) : 8617.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:DotBenchmark():int:this (Tier0)
          -8 (-7.14 % of base) : 27037.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsStaticBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 36793.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:AddBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 79457.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 75733.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 2112.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
         152 (33.63 % of base) : 23108.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Instrumented Tier0)
           4 (11.11 % of base) : 6268.dasm - System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
           4 (10.00 % of base) : 12422.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Instrumented Tier0)
           4 (10.00 % of base) : 1220.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 81429.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 47681.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 65873.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
           4 (8.33 % of base) : 22767.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 50562.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 59211.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
           4 (6.25 % of base) : 55077.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 20907.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 22004.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 45796.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 90002.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 66988.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 21761.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 18976.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 10245.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseAndBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
          -8 (-7.14 % of base) : 27037.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsStaticBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 36793.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:AddBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 9849.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 19481.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 79457.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 42877.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 79533.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 43713.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:BitwiseAndOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 33845.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 49641.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:MaxBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 26153.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 46005.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseAndBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 47437.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:BitwiseOrBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 66561.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 28321.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 43445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 33801.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 34369.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 30281.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ulong]:SubtractionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[ulong]:this (Tier0)


benchmarks.run_tiered.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15251468 (overridden on cmd)
Total bytes of diff: 15251852 (overridden on cmd)
Total bytes of delta: 384 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         152 : 1866.dasm (36.19 % of base)
          68 : 44127.dasm (39.53 % of base)
          48 : 42554.dasm (0.74 % of base)
          40 : 47367.dasm (1.85 % of base)
          24 : 21972.dasm (1.35 % of base)
          24 : 19659.dasm (0.35 % of base)
          24 : 24232.dasm (0.35 % of base)
          16 : 2250.dasm (1.76 % of base)
          16 : 42378.dasm (4.94 % of base)
          16 : 11358.dasm (3.54 % of base)
          16 : 27950.dasm (2.48 % of base)
          16 : 29443.dasm (1.94 % of base)
          16 : 30873.dasm (1.14 % of base)
          16 : 31159.dasm (0.43 % of base)
          16 : 4309.dasm (1.05 % of base)
          12 : 1176.dasm (0.50 % of base)
          12 : 45338.dasm (1.13 % of base)
           8 : 11232.dasm (4.88 % of base)
           8 : 11228.dasm (2.11 % of base)
           8 : 18040.dasm (4.88 % of base)

Top file improvements (bytes):
         -24 : 16254.dasm (-1.34 % of base)
         -16 : 7586.dasm (-0.18 % of base)
         -16 : 42305.dasm (-2.13 % of base)
         -16 : 19129.dasm (-0.32 % of base)
         -16 : 8694.dasm (-0.61 % of base)
         -12 : 6608.dasm (-3.66 % of base)
         -12 : 11865.dasm (-1.45 % of base)
         -12 : 20781.dasm (-1.07 % of base)
         -12 : 41157.dasm (-2.83 % of base)
         -12 : 12226.dasm (-0.13 % of base)
          -8 : 10393.dasm (-7.14 % of base)
          -8 : 15086.dasm (-7.14 % of base)
          -8 : 15222.dasm (-7.14 % of base)
          -8 : 16874.dasm (-7.14 % of base)
          -8 : 22809.dasm (-7.14 % of base)
          -8 : 27973.dasm (-7.14 % of base)
          -8 : 29393.dasm (-7.14 % of base)
          -8 : 29405.dasm (-7.14 % of base)
          -8 : 29549.dasm (-7.14 % of base)
          -8 : 29949.dasm (-7.14 % of base)

72 total files with Code Size differences (37 improved, 35 regressed), 20 unchanged.

Top method regressions (bytes):
         152 (36.19 % of base) : 1866.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
          68 (39.53 % of base) : 44127.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          48 (0.74 % of base) : 42554.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
          40 (1.85 % of base) : 47367.dasm - Benchstone.MDBenchI.MDMulMatrix:Inner(int[,],int[,],int[,]) (Tier0)
          24 (0.35 % of base) : 24232.dasm - Jil.Deserialize.Methods:ParseISO8601Time(System.IO.TextReader,ushort[],int,int):System.TimeSpan (Tier0)
          24 (0.35 % of base) : 19659.dasm - Jil.Deserialize.Methods:ParseISO8601TimeThunkReader(byref,ushort[],int,int):System.TimeSpan (Tier0)
          24 (1.35 % of base) : 21972.dasm - System.Globalization.CompareInfo:IcuGetHashCodeOfString(System.ReadOnlySpan`1[ushort],int):int:this (Tier0)
          16 (0.43 % of base) : 31159.dasm - Neural:read_data_file():this (Tier0)
          16 (1.14 % of base) : 30873.dasm - NeuralJagged:Init() (Tier0)
          16 (1.76 % of base) : 2250.dasm - System.Globalization.CultureInfo:GetUserDefaultUICulture():System.Globalization.CultureInfo (Tier0)
          16 (1.05 % of base) : 4309.dasm - System.Globalization.IdnMapping:IcuGetAsciiCore(System.String,ulong,int):System.String:this (Tier0)
          16 (4.94 % of base) : 42378.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
          16 (1.94 % of base) : 29443.dasm - System.Tests.Perf_Array:SetupArrayCopy3D():this (Tier0)
          16 (2.48 % of base) : 27950.dasm - System.Tests.Perf_Array:SetupArrayRetrieve3D():this (Tier0)
          16 (3.54 % of base) : 11358.dasm - Utf8Json.JsonReader:.ctor(ubyte[],int):this (Tier0)
          12 (1.13 % of base) : 45338.dasm - Interop+Crypt32:FindOidInfo(int,System.String,int,ubyte):Interop+Crypt32+CRYPT_OID_INFO (Tier0)
          12 (0.50 % of base) : 1176.dasm - System.Reflection.CustomAttribute:FilterCustomAttributeRecord(System.Reflection.MetadataToken,byref,System.Reflection.RuntimeModule,System.Reflection.MetadataToken,System.RuntimeType,ubyte,byref,byref,byref,byref):ubyte (Tier0)
           8 (4.88 % of base) : 18040.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 11232.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (2.11 % of base) : 11228.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitStloc(System.Reflection.Emit.ILGenerator,int) (Tier0)

Top method improvements (bytes):
         -24 (-1.34 % of base) : 16254.dasm - System.Diagnostics.StackFrameHelper:InitializeSourceInfo(int,ubyte,System.Exception):this (Tier0)
         -16 (-0.32 % of base) : 19129.dasm - Jil.Serialize.InlineSerializer`1[System.__Canon]:UnionAwareWriteMembers(ubyte,ubyte,System.Type,System.Collections.Generic.List`1[System.Reflection.MemberInfo],Sigil.Local,Sigil.Local,byref,Jil.Serialize.InlineSerializer`1+WriteMemberDelegate[System.__Canon]):this (Tier0)
         -16 (-0.61 % of base) : 8694.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
         -16 (-0.18 % of base) : 7586.dasm - System.DefaultBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this (Tier0)
         -16 (-2.13 % of base) : 42305.dasm - System.StubHelpers.CSTRMarshaler:ConvertToNative(int,System.String,long):long (Tier0)
         -12 (-2.83 % of base) : 41157.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
         -12 (-3.66 % of base) : 6608.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
         -12 (-1.07 % of base) : 20781.dasm - System.Uri:TryFormat(System.Span`1[ushort],byref):ubyte:this (Tier0)
         -12 (-1.45 % of base) : 11865.dasm - System.Xml.Serialization.XmlReflectionImporter:GetDefaultValue(System.Xml.Serialization.TypeDesc,System.Type,System.Xml.Serialization.XmlAttributes):System.Object (Tier0)
         -12 (-0.13 % of base) : 12226.dasm - System.Xml.Serialization.XmlSerializationReaderILGen:WriteElement(System.String,System.String,System.String,System.Xml.Serialization.ElementAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.String,ubyte,ubyte,int,int):this (Tier0)
          -8 (-7.14 % of base) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
          -8 (-5.71 % of base) : 16913.dasm - System.Numerics.Tests.Perf_VectorOf`1[float]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
          -8 (-7.14 % of base) : 27973.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:AddOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 15222.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 16874.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
          -8 (-5.71 % of base) : 15113.dasm - System.Numerics.Tests.Perf_VectorOf`1[ulong]:InequalityOperatorBenchmark():ubyte:this (Tier0)
          -8 (-7.14 % of base) : 15086.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivideBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 31565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)

Top method regressions (percentages):
          68 (39.53 % of base) : 44127.dasm - System.Buffers.ProbabilisticMap:IsCharBitSet(System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         152 (36.19 % of base) : 1866.dasm - System.Guid:FormatGuidVector128Utf8(System.Guid,ubyte):System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]] (Tier0)
           4 (11.11 % of base) : 14964.dasm - System.Runtime.Intrinsics.Vector128:Create[int](System.Runtime.Intrinsics.Vector64`1[int],System.Runtime.Intrinsics.Vector64`1[int]):System.Runtime.Intrinsics.Vector128`1[int] (Tier0)
           4 (10.00 % of base) : 1157.dasm - System.Buffers.IndexOfAnyAsciiSearcher+Default:PackSources(System.Runtime.Intrinsics.Vector128`1[ushort],System.Runtime.Intrinsics.Vector128`1[ushort]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
           4 (10.00 % of base) : 45500.dasm - System.Math:CopySign(double,double):double (Tier0)
           4 (10.00 % of base) : 30778.dasm - System.MathF:CopySign(float,float):float (Tier0)
           4 (10.00 % of base) : 40137.dasm - System.Numerics.Tests.Perf_VectorConvert:NarrowVector[double,float](System.Numerics.Vector`1[double],System.Numerics.Vector`1[double]):System.Numerics.Vector`1[float] (Tier0)
           4 (8.33 % of base) : 19051.dasm - System.Linq.Enumerable+MinCalc`1[ulong]:Compare(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (6.67 % of base) : 31890.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[double]:SumBenchmark():double:this (Tier0)
           4 (6.25 % of base) : 34754.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
           4 (6.25 % of base) : 16938.dasm - System.Numerics.Tests.Perf_Quaternion:DotBenchmark():float:this (Tier0)
           4 (5.26 % of base) : 18271.dasm - MessagePack.MessagePackBinary:WriteArrayHeader(byref,int,int):int (Tier0)
           4 (5.26 % of base) : 30120.dasm - MessagePack.MessagePackBinary:WriteMapHeader(byref,int,int):int (Tier0)
           4 (5.00 % of base) : 46895.dasm - System.Numerics.Tests.Perf_Quaternion:LengthSquaredBenchmark():float:this (Tier0)
          16 (4.94 % of base) : 42378.dasm - System.Numerics.Quaternion:op_Multiply(System.Numerics.Quaternion,System.Numerics.Quaternion):System.Numerics.Quaternion (Tier0)
           8 (4.88 % of base) : 18040.dasm - MessagePack.Internal.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           8 (4.88 % of base) : 11232.dasm - Utf8Json.Internal.Emit.ILGeneratorExtensions:EmitLdloca(System.Reflection.Emit.ILGenerator,int) (Tier0)
           4 (4.76 % of base) : 46726.dasm - System.Numerics.Tests.Perf_Quaternion:LengthBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 48281.dasm - System.Numerics.Tests.Perf_Vector2:LengthSquaredBenchmark():float:this (Tier0)
           4 (4.55 % of base) : 44360.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:SumBenchmark():float:this (Tier0)

Top method improvements (percentages):
          -8 (-7.14 % of base) : 5877.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:GreaterThanBenchmark():System.Numerics.Vector`1[double]:this (Tier0)
          -8 (-7.14 % of base) : 27973.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:AddOperatorBenchmark():System.Numerics.Vector`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 15222.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 10393.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 15117.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MinBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
          -8 (-7.14 % of base) : 16874.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractionOperatorBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 15086.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:DivideBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 31565.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:ExclusiveOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 46929.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 48009.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:GreaterThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 29405.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Float:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 29549.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:AndNotBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 39949.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:LessThanOrEqualBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 48025.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Int:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          -8 (-7.14 % of base) : 22809.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:DivisionOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 29445.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[float]:MultiplyOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[float]:this (Tier0)
          -8 (-7.14 % of base) : 17762.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[long]:AddOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[long]:this (Tier0)
          -8 (-7.14 % of base) : 18406.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ubyte]:XorBenchmark():System.Runtime.Intrinsics.Vector128`1[ubyte]:this (Tier0)
          -8 (-7.14 % of base) : 29949.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[uint]:BitwiseOrOperatorBenchmark():System.Runtime.Intrinsics.Vector128`1[uint]:this (Tier0)
          -8 (-7.14 % of base) : 29393.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[ushort]:EqualsStaticBenchmark():System.Runtime.Intrinsics.Vector128`1[ushort]:this (Tier0)


coreclr_tests.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 494449448 (overridden on cmd)
Total bytes of diff: 494593076 (overridden on cmd)
Total bytes of delta: 143628 (0.03 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         860 : 6361.dasm (1.98 % of base)
         860 : 6371.dasm (2.11 % of base)
         860 : 6426.dasm (1.98 % of base)
         860 : 6436.dasm (1.99 % of base)
         860 : 6451.dasm (2.11 % of base)
         860 : 6468.dasm (1.97 % of base)
         860 : 6472.dasm (2.10 % of base)
         860 : 6479.dasm (2.11 % of base)
         860 : 6420.dasm (2.13 % of base)
         860 : 6422.dasm (1.83 % of base)
         860 : 6438.dasm (1.97 % of base)
         860 : 6442.dasm (2.09 % of base)
         808 : 274214.dasm (0.60 % of base)
         784 : 274341.dasm (0.59 % of base)
         784 : 276106.dasm (0.59 % of base)
         784 : 276116.dasm (0.64 % of base)
         756 : 287048.dasm (0.73 % of base)
         720 : 286000.dasm (0.68 % of base)
         672 : 286124.dasm (0.64 % of base)
         672 : 287058.dasm (0.69 % of base)

Top file improvements (bytes):
        -220 : 157661.dasm (-8.63 % of base)
        -220 : 157611.dasm (-8.63 % of base)
        -204 : 157651.dasm (-11.62 % of base)
        -204 : 194469.dasm (-15.41 % of base)
        -204 : 194419.dasm (-15.41 % of base)
        -204 : 157621.dasm (-11.62 % of base)
        -204 : 157671.dasm (-11.62 % of base)
        -204 : 194389.dasm (-15.41 % of base)
        -200 : 194379.dasm (-5.26 % of base)
        -200 : 194429.dasm (-5.26 % of base)
        -116 : 157230.dasm (-3.49 % of base)
        -116 : 157479.dasm (-3.49 % of base)
        -116 : 157601.dasm (-8.73 % of base)
        -116 : 157499.dasm (-3.49 % of base)
        -116 : 157631.dasm (-8.73 % of base)
        -116 : 157251.dasm (-3.49 % of base)
        -116 : 157489.dasm (-3.49 % of base)
        -116 : 157216.dasm (-3.49 % of base)
        -116 : 157465.dasm (-3.49 % of base)
        -116 : 157681.dasm (-8.73 % of base)

67 total files with Code Size differences (27 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         860 (1.98 % of base) : 6361.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 6371.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (2.13 % of base) : 6420.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         860 (1.83 % of base) : 6422.dasm - lclflddiv:TestEntryPoint():int (MinOpts)
         860 (1.98 % of base) : 6426.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.99 % of base) : 6436.dasm - lclflddiv:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 6438.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
         860 (2.11 % of base) : 6451.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (2.09 % of base) : 6442.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         860 (1.97 % of base) : 6468.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
         860 (2.10 % of base) : 6472.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         860 (2.11 % of base) : 6479.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         808 (0.60 % of base) : 274214.dasm - i4div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 274341.dasm - i8div:TestEntryPoint():int (MinOpts)
         784 (0.59 % of base) : 276106.dasm - u4div:TestEntryPoint():int (MinOpts)
         784 (0.64 % of base) : 276116.dasm - u8div:TestEntryPoint():int (MinOpts)
         756 (0.73 % of base) : 287048.dasm - u4div:TestEntryPoint():int (Tier0)
         720 (0.68 % of base) : 286000.dasm - i4div:TestEntryPoint():int (Tier0)
         672 (0.64 % of base) : 286124.dasm - i8div:TestEntryPoint():int (Tier0)
         672 (0.69 % of base) : 287058.dasm - u8div:TestEntryPoint():int (Tier0)

Top method improvements (bytes):
        -220 (-8.63 % of base) : 157611.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 157661.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 194389.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 157621.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 194419.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 157651.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 157671.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -204 (-15.41 % of base) : 194469.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 194379.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 194429.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
        -116 (-3.49 % of base) : 157216.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157251.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157230.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt163:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157465.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt160:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157499.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt1615:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157479.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt163:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-3.49 % of base) : 157489.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementUInt167:RunBasicScenario(int,ubyte):this (MinOpts)
        -116 (-8.73 % of base) : 157601.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 157631.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 157681.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)

Top method regressions (percentages):
          52 (76.47 % of base) : 83662.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          52 (76.47 % of base) : 83631.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          52 (76.47 % of base) : 45028.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          52 (76.47 % of base) : 44999.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`4[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          44 (73.33 % of base) : 83602.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          44 (73.33 % of base) : 83574.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          44 (73.33 % of base) : 44972.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          44 (73.33 % of base) : 44946.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`3[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
          36 (69.23 % of base) : 83549.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector64`1[byte]):System.Runtime.Intrinsics.Vector64`1[byte] (Tier0)
          36 (69.23 % of base) : 83525.dasm - System.Runtime.Intrinsics.Arm.AdvSimd:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector64`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector64`1[ubyte]):System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
          36 (69.23 % of base) : 44921.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[byte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
          36 (69.23 % of base) : 44897.dasm - System.Runtime.Intrinsics.Arm.AdvSimd+Arm64:VectorTableLookupExtension(System.Runtime.Intrinsics.Vector128`1[ubyte],System.ValueTuple`2[System.Runtime.Intrinsics.Vector128`1[ubyte],System.Runtime.Intrinsics.Vector128`1[ubyte]],System.Runtime.Intrinsics.Vector128`1[ubyte]):System.Runtime.Intrinsics.Vector128`1[ubyte] (Tier0)
         184 (51.11 % of base) : 98262.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (51.11 % of base) : 98286.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookupExtension_3Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 134820.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionByte:RunStructLclFldScenario():this (Tier0)
         184 (48.42 % of base) : 134845.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookupExtension_4Test__VectorTableLookupExtensionSByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 134631.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupByte:RunStructLclFldScenario():this (Tier0)
         176 (48.35 % of base) : 134655.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)
          52 (48.15 % of base) : 304374.dasm - Runtime_91209:Problem4():System.Runtime.Intrinsics.Vector64`1[ubyte] (Tier0)
         176 (47.31 % of base) : 98146.dasm - JIT.HardwareIntrinsics.Arm._AdvSimd.Arm64.VectorLookup_4Test__VectorTableLookupSByte:RunStructLclFldScenario():this (Tier0)

Top method improvements (percentages):
        -204 (-15.41 % of base) : 194389.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 194419.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-15.41 % of base) : 194469.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (Instrumented Tier0)
        -204 (-11.62 % of base) : 157621.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 157651.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (MinOpts)
        -204 (-11.62 % of base) : 157671.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 157601.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperDouble:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 157631.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt64:RunBasicScenario():this (MinOpts)
        -116 (-8.73 % of base) : 157681.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt64:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 157611.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt16:RunBasicScenario():this (MinOpts)
        -220 (-8.63 % of base) : 157661.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt16:RunBasicScenario():this (MinOpts)
        -112 (-6.83 % of base) : 194409.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperInt32:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 194439.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSingle:RunBasicScenario():this (Instrumented Tier0)
        -112 (-6.83 % of base) : 194459.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperUInt32:RunBasicScenario():this (Instrumented Tier0)
          -8 (-6.67 % of base) : 307681.dasm - GitHub_20657.Program:Oops(System.Numerics.Vector4):System.Numerics.Vector4 (Tier0)
         -12 (-6.12 % of base) : 308121.dasm - Performance_2700:TestEntryPoint():int (Tier0)
        -200 (-5.26 % of base) : 194379.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperByte:RunBasicScenario():this (Instrumented Tier0)
        -200 (-5.26 % of base) : 194429.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithLowerAndUpper__GetAndWithLowerAndUpperSByte:RunBasicScenario():this (Instrumented Tier0)
         -16 (-5.06 % of base) : 226614.dasm - (dynamicClass):IL_STUB_PInvoke():System.Numerics.Vector3 (MinOpts)
         -96 (-4.54 % of base) : 157317.dasm - JIT.HardwareIntrinsics.General._Vector512_1.VectorGetAndWithElement__GetAndWithElementInt640:RunBasicScenario(int,ubyte):this (MinOpts)


libraries.crossgen2.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 59008088 (overridden on cmd)
Total bytes of diff: 59008088 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries.pmi.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 78059240 (overridden on cmd)
Total bytes of diff: 78059240 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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


libraries_tests.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 308519220 (overridden on cmd)
Total bytes of diff: 308522220 (overridden on cmd)
Total bytes of delta: 3000 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
         624 : 386485.dasm (3.07 % of base)
         128 : 431548.dasm (1.75 % of base)
         112 : 432670.dasm (1.70 % of base)
          88 : 431103.dasm (1.49 % of base)
          64 : 433182.dasm (1.27 % of base)
          64 : 433188.dasm (1.27 % of base)
          64 : 433191.dasm (1.27 % of base)
          64 : 432293.dasm (1.27 % of base)
          64 : 432595.dasm (1.27 % of base)
          52 : 431540.dasm (0.91 % of base)
          48 : 111415.dasm (0.64 % of base)
          48 : 237393.dasm (1.07 % of base)
          48 : 3495.dasm (0.74 % of base)
          40 : 431141.dasm (1.07 % of base)
          40 : 406897.dasm (1.98 % of base)
          32 : 432687.dasm (0.88 % of base)
          28 : 77035.dasm (3.07 % of base)
          24 : 391462.dasm (5.04 % of base)
          24 : 314788.dasm (0.43 % of base)
          24 : 391972.dasm (3.11 % of base)

Top file improvements (bytes):
         -72 : 408349.dasm (-3.83 % of base)
         -52 : 354004.dasm (-2.21 % of base)
         -48 : 111257.dasm (-1.14 % of base)
         -44 : 163601.dasm (-1.56 % of base)
         -44 : 110994.dasm (-1.50 % of base)
         -44 : 111589.dasm (-1.56 % of base)
         -44 : 163292.dasm (-1.56 % of base)
         -44 : 163843.dasm (-1.56 % of base)
         -44 : 266035.dasm (-1.56 % of base)
         -44 : 304217.dasm (-1.56 % of base)
         -44 : 304242.dasm (-1.56 % of base)
         -44 : 48920.dasm (-1.56 % of base)
         -44 : 49025.dasm (-1.66 % of base)
         -44 : 111259.dasm (-1.53 % of base)
         -44 : 123731.dasm (-1.75 % of base)
         -44 : 162591.dasm (-1.56 % of base)
         -44 : 163596.dasm (-1.56 % of base)
         -44 : 171436.dasm (-1.56 % of base)
         -44 : 171622.dasm (-1.44 % of base)
         -44 : 209968.dasm (-1.11 % of base)

78 total files with Code Size differences (38 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
         624 (3.07 % of base) : 386485.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
         128 (1.75 % of base) : 431548.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
         112 (1.70 % of base) : 432670.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
          88 (1.49 % of base) : 431103.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)
          64 (1.27 % of base) : 433188.dasm - System.Numerics.Tests.maxTest:RunMaxTests() (Instrumented Tier0)
          64 (1.27 % of base) : 433191.dasm - System.Numerics.Tests.minTest:RunMinTests() (Instrumented Tier0)
          64 (1.27 % of base) : 432293.dasm - System.Numerics.Tests.op_andTest:RunAndTests() (Instrumented Tier0)
          64 (1.27 % of base) : 433182.dasm - System.Numerics.Tests.op_orTest:RunOrTests() (Instrumented Tier0)
          64 (1.27 % of base) : 432595.dasm - System.Numerics.Tests.op_xorTest:RunXorTests() (Instrumented Tier0)
          52 (0.91 % of base) : 431540.dasm - System.Numerics.Tests.op_multiplyTest:RunMultiplyTests() (Instrumented Tier0)
          48 (1.07 % of base) : 237393.dasm - ManagedTests.DynamicCSharp.Conformance.dynamic.dynamicType.classes.simplename005.simplename005.NS1.Test:RunTest():ubyte:this (Tier0)
          48 (0.64 % of base) : 111415.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Instrumented Tier0)
          48 (0.74 % of base) : 3495.dasm - System.Diagnostics.Process:StartWithCreateProcess(System.Diagnostics.ProcessStartInfo):ubyte:this (Tier0)
          40 (1.07 % of base) : 431141.dasm - System.Numerics.Tests.BigIntegerConstructorTest:RunCtorSingleTests() (Instrumented Tier0)
          40 (1.98 % of base) : 406897.dasm - WebData.BaseLib.StringGen:GetIllegalXmlStringWithSeed(int,ubyte,int):System.String (Instrumented Tier0)
          32 (0.88 % of base) : 432687.dasm - System.Numerics.Tests.gcdTest:RunGCDTests() (Instrumented Tier0)
          28 (3.07 % of base) : 77035.dasm - Microsoft.CodeAnalysis.XmlDocumentationCommentTextReader+Reader:Read(ushort[],int,int):int:this (Tier0)
          24 (0.43 % of base) : 314788.dasm - System.Net.Quic.MsQuicApi:.cctor() (Tier0)
          24 (3.11 % of base) : 391972.dasm - System.Xml.Xsl.XmlQueryType:GetHashCode():int:this (Instrumented Tier0)
          24 (5.04 % of base) : 391462.dasm - System.Xml.Xsl.XmlQueryType:GetHashCode():int:this (Tier0)

Top method improvements (bytes):
         -72 (-3.83 % of base) : 408349.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -52 (-2.21 % of base) : 354004.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
         -48 (-1.14 % of base) : 111257.dasm - Xunit.Assert:Equal[System.Nullable`1[int]](System.Nullable`1[int],System.Nullable`1[int],System.Collections.Generic.IEqualityComparer`1[System.Nullable`1[int]]) (Instrumented Tier0)
         -44 (-1.11 % of base) : 209968.dasm - System.Xml.Schema.Compiler:CompileComplexType(System.Xml.Schema.XmlSchemaComplexType):this (Instrumented Tier0)
         -44 (-1.56 % of base) : 304217.dasm - Xunit.Sdk.AssertEqualityComparer`1[byte]:Equals(byte,Xunit.Sdk.CollectionTracker,byte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 163292.dasm - Xunit.Sdk.AssertEqualityComparer`1[double]:Equals(double,Xunit.Sdk.CollectionTracker,double,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 163596.dasm - Xunit.Sdk.AssertEqualityComparer`1[float]:Equals(float,Xunit.Sdk.CollectionTracker,float,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 48920.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 162591.dasm - Xunit.Sdk.AssertEqualityComparer`1[long]:Equals(long,Xunit.Sdk.CollectionTracker,long,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 163601.dasm - Xunit.Sdk.AssertEqualityComparer`1[short]:Equals(short,Xunit.Sdk.CollectionTracker,short,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.50 % of base) : 110994.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.__Canon]:Equals(System.__Canon,Xunit.Sdk.CollectionTracker,System.__Canon,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.44 % of base) : 171622.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.75 % of base) : 123731.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:Equals(System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Tier0)
         -44 (-1.53 % of base) : 111259.dasm - Xunit.Sdk.AssertEqualityComparer`1[System.Nullable`1[int]]:Equals(System.Nullable`1[int],Xunit.Sdk.CollectionTracker,System.Nullable`1[int],Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 111589.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.66 % of base) : 49025.dasm - Xunit.Sdk.AssertEqualityComparer`1[ubyte]:Equals(ubyte,Xunit.Sdk.CollectionTracker,ubyte,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 266035.dasm - Xunit.Sdk.AssertEqualityComparer`1[uint]:Equals(uint,Xunit.Sdk.CollectionTracker,uint,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 171436.dasm - Xunit.Sdk.AssertEqualityComparer`1[ulong]:Equals(ulong,Xunit.Sdk.CollectionTracker,ulong,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 163843.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)
         -44 (-1.56 % of base) : 304242.dasm - Xunit.Sdk.AssertEqualityComparer`1[ushort]:Equals(ushort,Xunit.Sdk.CollectionTracker,ushort,Xunit.Sdk.CollectionTracker,byref):ubyte:this (Instrumented Tier0)

Top method regressions (percentages):
           4 (14.29 % of base) : 362704.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Instrumented Tier0)
           4 (14.29 % of base) : 361959.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector128`1[double]):double (Tier0)
          12 (12.50 % of base) : 426861.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:ExpDoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 427049.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:Log2DoubleTest(double,double,double):this (Tier0)
          12 (12.50 % of base) : 426748.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector64Tests:LogDoubleTest(double,double,double):this (Tier0)
          12 (11.54 % of base) : 426008.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double],System.Runtime.Intrinsics.Vector128`1[double]) (Tier0)
          12 (11.54 % of base) : 426090.dasm - System.Runtime.Intrinsics.Tests.Vectors.Vector128Tests:AssertEqual(System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]) (Tier0)
           4 (9.09 % of base) : 355565.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Instrumented Tier0)
           4 (9.09 % of base) : 354496.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[byte](System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte],System.Runtime.Intrinsics.Vector128`1[byte]):System.Runtime.Intrinsics.Vector128`1[byte] (Tier0)
           4 (9.09 % of base) : 363937.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Instrumented Tier0)
           4 (9.09 % of base) : 363612.dasm - System.Numerics.Tensors.TensorPrimitives:ElementWiseSelect[ulong](System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (9.09 % of base) : 358251.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
           4 (9.09 % of base) : 365461.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Instrumented Tier0)
           4 (9.09 % of base) : 356709.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
           4 (9.09 % of base) : 365302.dasm - System.Numerics.Tensors.TensorPrimitives:FusedMultiplyAdd[float](System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float],System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[float] (Tier0)
           4 (8.33 % of base) : 294767.dasm - System.Linq.Enumerable+MaxCalc`1[long]:Compare(System.Runtime.Intrinsics.Vector128`1[long],System.Runtime.Intrinsics.Vector128`1[long]):System.Runtime.Intrinsics.Vector128`1[long] (Tier0)
           4 (8.33 % of base) : 357796.dasm - System.Numerics.Tensors.TensorPrimitives+AddOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector128`1[float]):float (Instrumented Tier0)
           4 (8.33 % of base) : 364123.dasm - System.Numerics.Tensors.TensorPrimitives+MaxOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (8.33 % of base) : 363920.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)
           4 (8.33 % of base) : 355595.dasm - System.Numerics.Tensors.TensorPrimitives+MaxPropagateNaNOperator`1[ulong]:Invoke(System.Runtime.Intrinsics.Vector128`1[ulong],System.Runtime.Intrinsics.Vector128`1[ulong]):System.Runtime.Intrinsics.Vector128`1[ulong] (Tier0)

Top method improvements (percentages):
         -20 (-5.49 % of base) : 159856.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Tier0)
         -16 (-4.12 % of base) : 177355.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.ReadOnlySpan`1[int],System.AssertExtensions+AssertThrowsActionReadOnly`1[int]):System.__Canon (Tier0)
         -16 (-4.12 % of base) : 179781.dasm - System.AssertExtensions:AssertThrows[System.__Canon,int](System.Span`1[int],System.AssertExtensions+AssertThrowsAction`1[int]):System.__Canon (Tier0)
         -72 (-3.83 % of base) : 408349.dasm - System.Xml.XmlWriterApiTests.TCFullEndElement+TCWriteValue:writeValue_27(System.Xml.XmlWriterApiTests.XmlWriterUtils,int,System.String,System.String,ubyte,System.Object):this (Tier0)
         -16 (-3.77 % of base) : 163473.dasm - Microsoft.VisualBasic.Tests.FileSystemTests:AssertThrows[System.__Canon](System.Action) (Instrumented Tier0)
         -12 (-3.66 % of base) : 71179.dasm - System.ComponentModel.TypeDescriptor:CheckDefaultProvider(System.Type) (Tier0)
          -8 (-3.64 % of base) : 67201.dasm - SharedTypes.IntWrapperWithNotification:RaiseInvokeSucceeded():this (Tier0)
         -20 (-3.55 % of base) : 620641.dasm - System.Transactions.DtcProxyShim.OletxHelper:Retry(System.Action) (Instrumented Tier0)
          -4 (-3.33 % of base) : 618795.dasm - System.Threading.ThreadPools.Tests.ThreadPoolTests+<>c:<ThreadPoolThreadCreationDoesNotTransferExecutionContext>b__37_1(System.Threading.AsyncLocalValueChangedArgs`1[int]):this (Tier0)
         -12 (-2.83 % of base) : 14575.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Tier0)
          -8 (-2.78 % of base) : 330593.dasm - System.Net.WebSockets.WebSocketBuffer:IsPinnedSendPayloadBuffer(ubyte[],int,int):ubyte:this (Tier0)
          -4 (-2.63 % of base) : 106315.dasm - Lamar.ServiceRegistry+<>c__22`1[System.__Canon]:<FindAndRemovePolicies>b__22_0(Microsoft.Extensions.DependencyInjection.ServiceDescriptor):ubyte:this (Tier0)
          -8 (-2.38 % of base) : 27592.dasm - Microsoft.CodeAnalysis.CSharp.OverloadResolution+UnopEasyOut:OpKind(int,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):int (Tier0)
         -20 (-2.25 % of base) : 191572.dasm - System.ComponentModel.ReflectPropertyDescriptor:SetValue(System.Object,System.Object):this (Tier0)
          -4 (-2.22 % of base) : 212821.dasm - System.Data.SqlTypes.SqlByte:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlByte (Tier0)
         -52 (-2.21 % of base) : 354004.dasm - System.Net.WebSockets.Tests.WebSocketTestStream+<ReadAsync>d__36:MoveNext():this (Tier0)
          -4 (-2.13 % of base) : 212826.dasm - System.Data.SqlTypes.SqlInt16:op_Explicit(System.Data.SqlTypes.SqlMoney):System.Data.SqlTypes.SqlInt16 (Tier0)
         -24 (-2.09 % of base) : 620716.dasm - System.Transactions.Oletx.OletxResourceManager:get_ResourceManagerShim():System.Transactions.DtcProxyShim.ResourceManagerShim:this (Tier0)
         -12 (-2.05 % of base) : 36921.dasm - Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]:Equals(Microsoft.CodeAnalysis.CSharp.LocalDataFlowPass`2+VariableIdentifier[Microsoft.CodeAnalysis.CSharp.DefiniteAssignmentPass+LocalState,System.__Canon]):ubyte:this (Instrumented Tier0)
         -20 (-2.04 % of base) : 191649.dasm - System.ComponentModel.ReflectPropertyDescriptor:ResetValue(System.Object):this (Tier0)


librariestestsnotieredcompilation.run.windows.arm64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 169413408 (overridden on cmd)
Total bytes of diff: 169413520 (overridden on cmd)
Total bytes of delta: 112 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           4 : 281963.dasm (2.38 % of base)
           4 : 282843.dasm (2.50 % of base)
           4 : 290181.dasm (2.50 % of base)
           4 : 290763.dasm (2.38 % of base)
           4 : 291619.dasm (2.50 % of base)
           4 : 291660.dasm (2.50 % of base)
           4 : 291683.dasm (2.38 % of base)
           4 : 291819.dasm (2.50 % of base)
           4 : 297761.dasm (2.50 % of base)
           4 : 300764.dasm (2.38 % of base)
           4 : 301930.dasm (2.50 % of base)
           4 : 302588.dasm (2.38 % of base)
           4 : 303949.dasm (2.50 % of base)
           4 : 281435.dasm (2.38 % of base)
           4 : 282844.dasm (2.27 % of base)
           4 : 282855.dasm (2.86 % of base)
           4 : 291567.dasm (2.50 % of base)
           4 : 291591.dasm (2.38 % of base)
           4 : 291670.dasm (2.50 % of base)
           4 : 291682.dasm (2.50 % of base)

Top file improvements (bytes):
          -8 : 11929.dasm (-1.57 % of base)

28 total files with Code Size differences (1 improved, 27 regressed), 39 unchanged.

Top method regressions (bytes):
           4 (2.50 % of base) : 291567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291619.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 301930.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 303949.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 302588.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 304187.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 291660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291682.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 298907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 291683.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 291591.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.86 % of base) : 292211.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 291819.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 291827.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|37_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 297761.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291670.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 281435.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int,int) (MinOpts)
           4 (2.50 % of base) : 299355.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 290181.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 290763.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|68_0(byref,byref,int,int,int) (MinOpts)

Top method improvements (bytes):
          -8 (-1.57 % of base) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)

Top method regressions (percentages):
           4 (2.86 % of base) : 292211.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|35_0(byref,byref,int) (MinOpts)
           4 (2.86 % of base) : 282855.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|83_0(byref,byref,int) (MinOpts)
           4 (2.50 % of base) : 291567.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|0_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291619.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|1_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 301930.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|14_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 303949.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291660.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291682.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|2_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 298907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291819.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|36_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 297761.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 291670.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|4_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 299355.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|5_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 290181.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|67_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 300630.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|7_0(byref,byref,int,int) (MinOpts)
           4 (2.50 % of base) : 282843.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|84_0(byref,byref,int,int) (MinOpts)
           4 (2.38 % of base) : 302588.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|15_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 304187.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|16_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 291683.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)
           4 (2.38 % of base) : 291591.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:<StackPush>g__WithResize|3_0(byref,byref,int,int,int) (MinOpts)

Top method improvements (percentages):
          -8 (-1.57 % of base) : 11929.dasm - Microsoft.CodeAnalysis.Testing.CodeActionTest`1+SourceFileEqualityComparer[System.__Canon]:Equals(System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText],System.ValueTuple`2[System.String,Microsoft.CodeAnalysis.Text.SourceText]):ubyte:this (MinOpts)


realworld.run.windows.arm64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 15463108 (overridden on cmd)
Total bytes of diff: 15463108 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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



windows x64

Diffs are based on 2,366,385 contexts (928,740 MinOpts, 1,437,645 FullOpts).

MISSED contexts: 6,816 (0.29%)

Overall (-62,154 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 8,536,477 +2
benchmarks.run_pgo.windows.x64.checked.mch 35,464,350 -13,500
benchmarks.run_tiered.windows.x64.checked.mch 12,551,598 -12,300
coreclr_tests.run.windows.x64.checked.mch 392,239,828 +139,386
libraries.crossgen2.windows.x64.checked.mch 39,446,742 -2
libraries.pmi.windows.x64.checked.mch 60,117,403 +2
libraries_tests.run.windows.x64.Release.mch 276,943,385 -163,110
librariestestsnotieredcompilation.run.windows.x64.Release.mch 135,762,558 -12,638
realworld.run.windows.x64.checked.mch 13,729,153 +6
smoke_tests.nativeaot.windows.x64.checked.mch 5,087,013 +0

MinOpts (-62,154 bytes)

Collection Base size (bytes) Diff size (bytes)
benchmarks.run.windows.x64.checked.mch 361 +2
benchmarks.run_pgo.windows.x64.checked.mch 13,997,605 -13,500
benchmarks.run_tiered.windows.x64.checked.mch 9,105,849 -12,300
coreclr_tests.run.windows.x64.checked.mch 272,531,567 +139,386
libraries.crossgen2.windows.x64.checked.mch 1,189 -2
libraries.pmi.windows.x64.checked.mch 113,519 +2
libraries_tests.run.windows.x64.Release.mch 173,720,676 -163,110
librariestestsnotieredcompilation.run.windows.x64.Release.mch 10,806,556 -12,638
realworld.run.windows.x64.checked.mch 386,603 +6
smoke_tests.nativeaot.windows.x64.checked.mch 947 +0

Example diffs

benchmarks.run.windows.x64.checked.mch

+0 (0.00%) : 14957.dasm - Devirtualization.EqualityComparerFixture1[System.ValueTuple3[ubyte,int,int]]:CompareNoOpt(byref,byref):ubyte:this (MinOpts)

@@ -30,19 +30,21 @@ G_M54368_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs +[rax] mov gword ptr [rbp-0x28], rax
- mov rcx, bword ptr [rbp+0x18] - ; byrRegs +[rcx] - vmovups xmm0, xmmword ptr [rcx]
+ mov rax, bword ptr [rbp+0x18] + ; gcrRegs -[rax] + ; byrRegs +[rax] + vmovups xmm0, xmmword ptr [rax]
vmovups xmmword ptr [rbp-0x10], xmm0
- mov rcx, bword ptr [rbp+0x20] - vmovups xmm0, xmmword ptr [rcx]
+ mov rax, bword ptr [rbp+0x20] + vmovups xmm0, xmmword ptr [rax]
vmovups xmmword ptr [rbp-0x20], xmm0 mov rcx, gword ptr [rbp-0x28] ; gcrRegs +[rcx]
- ; byrRegs -[rcx]
lea rdx, [rbp-0x10] lea r8, [rbp-0x20] mov rax, gword ptr [rbp-0x28]
+ ; gcrRegs +[rax] + ; byrRegs -[rax]
mov rax, qword ptr [rax] ; gcrRegs -[rax] mov rax, qword ptr [rax+0x48]

+0 (0.00%) : 5678.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp+0x10], rcx ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov r8, gword ptr [rbp-0x10]

+2 (+1.28%) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { call [<unknown method>] ; byrRegs -[rcx] mov dword ptr [rbp-0x04], eax
- xor ecx, ecx - mov dword ptr [rbp-0x08], ecx - xor ecx, ecx - mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + xor eax, eax + mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.50 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edx, dword ptr [rbp-0x0C] call [<unknown method>] ; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax] - mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] mov edx, dword ptr [rbp-0x0C] call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x14] sub ecx, eax
- or ecx, dword ptr [rbp-0x08] - mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x08] + mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C] inc eax mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C] - cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C] + cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x08], 0 @@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

benchmarks.run_pgo.windows.x64.checked.mch

-33 (-17.28%) : 24937.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector1[byte]:this (Tier0)

@@ -8,56 +8,52 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]> ; V01 RetBuf [V01 ] ( 1, 1 ) byref -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_02 simd32 -> [rbp-0x40] -; TEMP_01 simd32 -> [rbp-0x60]
+; TEMP_02 simd32 -> [rbp-0x20] +; TEMP_01 simd32 -> [rbp-0x40]
;
-; Lcl frame size = 128
+; Lcl frame size = 96
G_M14138_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 128
+ sub rsp, 96
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6 - vmovaps xmmword ptr [rsp+0x60], xmm7 - lea rbp, [rsp+0x80]
+ lea rbp, [rsp+0x60]
mov gword ptr [rbp+0x10], rcx mov bword ptr [rbp+0x18], rdx
- ;; size=39 bbWeight=1 PerfScore 8.75
+ ;; size=21 bbWeight=1 PerfScore 4.75
G_M14138_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x40], ymm6 - mov rcx, 0xD1FFAB1E - xor edx, edx - call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS - mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x60], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x20], ymm0
mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x40] - vmovups ymm7, ymmword ptr [rbp-0x60] - vpternlogd ymm6, ymm7, ymmword ptr [rax], -54
+ vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x40], ymm0 + mov rcx, 0xD1FFAB1E + xor edx, edx + call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rbp-0x20] + vmovups ymm1, ymmword ptr [rbp-0x40] + vpternlogd ymm0, ymm1, ymmword ptr [rax], -54
mov rax, bword ptr [rbp+0x18] ; byrRegs +[rax]
- vmovups ymmword ptr [rax], ymm6
+ vmovups ymmword ptr [rax], ymm0
mov rax, bword ptr [rbp+0x18] ;; size=128 bbWeight=1 PerfScore 32.25 G_M14138_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70] - vmovaps xmm7, xmmword ptr [rsp+0x60]
vzeroupper
- add rsp, 128
+ add rsp, 96
pop rbp ret
- ;; size=24 bbWeight=1 PerfScore 10.75
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 191, prolog size 31, PerfScore 51.75, instruction count 36, allocated bytes for code 191 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 158, prolog size 13, PerfScore 39.75, instruction count 32, allocated bytes for code 158 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================ Unwind Info: @@ -65,14 +61,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x17 - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x17 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7) - Scaled Small Offset: 6 * 16 = 96 = 0x00060 - CodeOffset: 0x11 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 7 * 16 = 112 = 0x00070 - CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 15 * 8 + 8 = 128 = 0x80
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 11 * 8 + 8 = 96 = 0x60
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-24 (-15.38%) : 60693.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)

@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=24 bbWeight=1 PerfScore 5.75 G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d - mov dword ptr [rbp-0x08], r8d - mov r8d, dword ptr [rbp+0x28] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x18] - movzx r8, r8b
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + mov eax, dword ptr [rbp+0x28] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x18] + movzx r8, al
lea rcx, [rbp-0x08] mov edx, dword ptr [rbp+0x10] mov r9d, dword ptr [rbp+0x20] call [<unknown method>] mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 96 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================ Unwind Info:

-18 (-11.11%) : 81297.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)

@@ -17,23 +17,22 @@ G_M36416_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, push rbp sub rsp, 144 vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90] mov gword ptr [rbp+0x10], rcx
- ;; size=32 bbWeight=1 PerfScore 5.75
+ ;; size=23 bbWeight=1 PerfScore 3.75
G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70] - vmulpd ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70] + vmulpd ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0 vmovups ymm0, ymmword ptr [rbp-0x30] vhaddpd ymm0, ymm0, ymmword ptr [rbp-0x30] @@ -43,14 +42,13 @@ G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref vaddpd ymm0, ymm0, ymmword ptr [rbp-0x50] ;; size=109 bbWeight=1 PerfScore 45.50 G_M36416_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper add rsp, 144 pop rbp ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
-; Total bytes of code 162, prolog size 28, PerfScore 58.00, instruction count 30, allocated bytes for code 162 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
+; Total bytes of code 144, prolog size 19, PerfScore 52.00, instruction count 28, allocated bytes for code 144 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
; ============================================================ Unwind Info: @@ -58,13 +56,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x14 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 18 * 8 = 144 = 0x00090 CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+15 (+20.00%) : 54635.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)

@@ -8,54 +8,58 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Collections.Queue> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x08]
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 32 - lea rbp, [rsp+0x20]
+ sub rsp, 48 + lea rbp, [rsp+0x30] + xor eax, eax + mov qword ptr [rbp-0x08], rax
mov gword ptr [rbp+0x10], rcx mov dword ptr [rbp+0x18], edx
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rbp+0x10] ; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x08], rax + mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10] - mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10] + ; gcrRegs -[rcx] + mov eax, ecx
; gcrRegs -[rax] add eax, dword ptr [rbp+0x18]
- mov rdx, gword ptr [rbp+0x10] - ; gcrRegs +[rdx] - mov r8, gword ptr [rdx+0x08] - ; gcrRegs +[r8]
+ mov rcx, gword ptr [rbp+0x10] + ; gcrRegs +[rcx] + mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx] - idiv edx:eax, dword ptr [r8+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08] + mov rcx, gword ptr [rbp-0x08]
cmp edx, dword ptr [rcx+0x08] jae SHORT G_M41139_IG04 mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10] - ; gcrRegs -[rcx] - ; byrRegs +[rcx] - mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10] + ; byrRegs +[rax] + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=46 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax] + ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 48
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r8] - ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 75, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 75 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================ Unwind Info: @@ -68,5 +72,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 60127.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 64215.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Instrumented Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

benchmarks.run_tiered.windows.x64.checked.mch

-33 (-17.28%) : 18417.dasm - System.Numerics.Tests.Perf_VectorOf1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector1[byte]:this (Tier0)

@@ -8,56 +8,52 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Numerics.Tests.Perf_VectorOf`1[byte]> ; V01 RetBuf [V01 ] ( 1, 1 ) byref -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_02 simd32 -> [rbp-0x40] -; TEMP_01 simd32 -> [rbp-0x60]
+; TEMP_02 simd32 -> [rbp-0x20] +; TEMP_01 simd32 -> [rbp-0x40]
;
-; Lcl frame size = 128
+; Lcl frame size = 96
G_M14138_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 128
+ sub rsp, 96
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6 - vmovaps xmmword ptr [rsp+0x60], xmm7 - lea rbp, [rsp+0x80]
+ lea rbp, [rsp+0x60]
mov gword ptr [rbp+0x10], rcx mov bword ptr [rbp+0x18], rdx
- ;; size=39 bbWeight=1 PerfScore 8.75
+ ;; size=21 bbWeight=1 PerfScore 4.75
G_M14138_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x40], ymm6 - mov rcx, 0xD1FFAB1E - xor edx, edx - call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS - mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x60], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x20], ymm0
mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x40] - vmovups ymm7, ymmword ptr [rbp-0x60] - vpternlogd ymm6, ymm7, ymmword ptr [rax], -54
+ vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x40], ymm0 + mov rcx, 0xD1FFAB1E + xor edx, edx + call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS + mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rbp-0x20] + vmovups ymm1, ymmword ptr [rbp-0x40] + vpternlogd ymm0, ymm1, ymmword ptr [rax], -54
mov rax, bword ptr [rbp+0x18] ; byrRegs +[rax]
- vmovups ymmword ptr [rax], ymm6
+ vmovups ymmword ptr [rax], ymm0
mov rax, bword ptr [rbp+0x18] ;; size=128 bbWeight=1 PerfScore 32.25 G_M14138_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70] - vmovaps xmm7, xmmword ptr [rsp+0x60]
vzeroupper
- add rsp, 128
+ add rsp, 96
pop rbp ret
- ;; size=24 bbWeight=1 PerfScore 10.75
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 191, prolog size 31, PerfScore 51.75, instruction count 36, allocated bytes for code 191 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
+; Total bytes of code 158, prolog size 13, PerfScore 39.75, instruction count 32, allocated bytes for code 158 (MethodHash=9a9dc8c5) for method System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
; ============================================================ Unwind Info: @@ -65,14 +61,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x17 - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x17 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM7 (7) - Scaled Small Offset: 6 * 16 = 96 = 0x00060 - CodeOffset: 0x11 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 7 * 16 = 112 = 0x00070 - CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 15 * 8 + 8 = 128 = 0x80
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 11 * 8 + 8 = 96 = 0x60
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-24 (-15.38%) : 38686.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)

@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=24 bbWeight=1 PerfScore 5.75 G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d - mov dword ptr [rbp-0x08], r8d - mov r8d, dword ptr [rbp+0x28] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x18] - movzx r8, r8b
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + mov eax, dword ptr [rbp+0x28] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x18] + movzx r8, al
lea rcx, [rbp-0x08] mov edx, dword ptr [rbp+0x10] mov r9d, dword ptr [rbp+0x20] call [<unknown method>] mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 96 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================ Unwind Info:

-18 (-11.11%) : 48180.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)

@@ -17,23 +17,22 @@ G_M36416_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, push rbp sub rsp, 144 vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90] mov gword ptr [rbp+0x10], rcx
- ;; size=32 bbWeight=1 PerfScore 5.75
+ ;; size=23 bbWeight=1 PerfScore 3.75
G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E xor edx, edx call CORINFO_HELP_CLASSINIT_SHARED_DYNAMICCLASS mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70] - vmulpd ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70] + vmulpd ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0 vmovups ymm0, ymmword ptr [rbp-0x30] vhaddpd ymm0, ymm0, ymmword ptr [rbp-0x30] @@ -43,14 +42,13 @@ G_M36416_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref vaddpd ymm0, ymm0, ymmword ptr [rbp-0x50] ;; size=109 bbWeight=1 PerfScore 45.50 G_M36416_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper add rsp, 144 pop rbp ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
-; Total bytes of code 162, prolog size 28, PerfScore 58.00, instruction count 30, allocated bytes for code 162 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
+; Total bytes of code 144, prolog size 19, PerfScore 52.00, instruction count 28, allocated bytes for code 144 (MethodHash=520671bf) for method System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
; ============================================================ Unwind Info: @@ -58,13 +56,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x14 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 18 * 8 = 144 = 0x00090 CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+9 (+16.36%) : 806.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)

@@ -7,6 +7,7 @@ ; ; V00 TypeCtx [V00 ] ( 1, 1 ) long -> [rbp+0x10] do-not-enreg[] ; V01 OutArgs [V01 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 byref -> [rbp-0x10]
; ; Lcl frame size = 48 @@ -14,29 +15,32 @@ G_M53231_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, push rbp sub rsp, 48 lea rbp, [rsp+0x30]
+ xor eax, eax + mov qword ptr [rbp-0x10], rax
mov qword ptr [rbp-0x08], rcx mov qword ptr [rbp+0x10], rcx
- ;; size=18 bbWeight=1 PerfScore 3.75
+ ;; size=24 bbWeight=1 PerfScore 5.00
G_M53231_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, qword ptr [rbp+0x10] call CORINFO_HELP_GETGENERICS_NONGCSTATIC_BASE ; byrRegs +[rax]
- mov rcx, rax - ; byrRegs +[rcx]
+ mov bword ptr [rbp-0x10], rax
mov eax, 512 ; byrRegs -[rax]
- mov r8d, 8
+ mov ecx, 8
xor edx, edx
- div edx:eax, r8d
+ div edx:eax, ecx + mov rcx, bword ptr [rbp-0x10] + ; byrRegs +[rcx]
mov dword ptr [rcx+0x08], eax
- ;; size=31 bbWeight=1 PerfScore 29.00
+ ;; size=34 bbWeight=1 PerfScore 30.75
G_M53231_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 48 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 55, prolog size 14, PerfScore 34.50, instruction count 16, allocated bytes for code 55 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
+; Total bytes of code 64, prolog size 20, PerfScore 37.50, instruction count 19, allocated bytes for code 64 (MethodHash=b7083010) for method System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
; ============================================================ Unwind Info:

+15 (+20.00%) : 35053.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)

@@ -8,54 +8,58 @@ ; V00 this [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] this class-hnd <System.Collections.Queue> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x08]
;
-; Lcl frame size = 32
+; Lcl frame size = 48
G_M41139_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- sub rsp, 32 - lea rbp, [rsp+0x20]
+ sub rsp, 48 + lea rbp, [rsp+0x30] + xor eax, eax + mov qword ptr [rbp-0x08], rax
mov gword ptr [rbp+0x10], rcx mov dword ptr [rbp+0x18], edx
- ;; size=17 bbWeight=1 PerfScore 3.75
+ ;; size=23 bbWeight=1 PerfScore 5.00
G_M41139_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rax, gword ptr [rbp+0x10] ; gcrRegs +[rax]
- mov rcx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x08], rax + mov rcx, gword ptr [rbp+0x10]
; gcrRegs +[rcx]
- mov rax, gword ptr [rbp+0x10] - mov eax, dword ptr [rax+0x10]
+ mov ecx, dword ptr [rcx+0x10] + ; gcrRegs -[rcx] + mov eax, ecx
; gcrRegs -[rax] add eax, dword ptr [rbp+0x18]
- mov rdx, gword ptr [rbp+0x10] - ; gcrRegs +[rdx] - mov r8, gword ptr [rdx+0x08] - ; gcrRegs +[r8]
+ mov rcx, gword ptr [rbp+0x10] + ; gcrRegs +[rcx] + mov rcx, gword ptr [rcx+0x08]
cdq
- ; gcrRegs -[rdx] - idiv edx:eax, dword ptr [r8+0x08]
+ idiv edx:eax, dword ptr [rcx+0x08] + mov rcx, gword ptr [rbp-0x08]
cmp edx, dword ptr [rcx+0x08] jae SHORT G_M41139_IG04 mov eax, edx
- lea rcx, bword ptr [rcx+8*rax+0x10] - ; gcrRegs -[rcx] - ; byrRegs +[rcx] - mov rax, gword ptr [rcx]
+ lea rax, bword ptr [rcx+8*rax+0x10] + ; byrRegs +[rax] + mov rax, gword ptr [rax]
; gcrRegs +[rax]
- ;; size=46 bbWeight=1 PerfScore 43.75
+ ; byrRegs -[rax] + ;; size=55 bbWeight=1 PerfScore 46.00
G_M41139_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 32
+ add rsp, 48
pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75 G_M41139_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
- ; gcrRegs -[rax r8] - ; byrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
call CORINFO_HELP_RNGCHKFAIL int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 75, prolog size 10, PerfScore 49.25, instruction count 24, allocated bytes for code 75 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
+; Total bytes of code 90, prolog size 16, PerfScore 52.75, instruction count 29, allocated bytes for code 90 (MethodHash=c74a5f4c) for method System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
; ============================================================ Unwind Info: @@ -68,5 +72,5 @@ Unwind Info: FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 3 * 8 + 8 = 32 = 0x20
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 38122.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

coreclr_tests.run.windows.x64.checked.mch

-24 (-15.38%) : 443459.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)

@@ -30,44 +30,44 @@ G_M64047_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=24 bbWeight=1 PerfScore 5.75 G_M64047_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d - mov dword ptr [rbp-0x08], r8d - mov r8d, dword ptr [rbp+0x28] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x18] - movzx r8, r8b
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + mov eax, dword ptr [rbp+0x28] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x18] + movzx r8, al
lea rcx, [rbp-0x08] mov edx, dword ptr [rbp+0x10] mov r9d, dword ptr [rbp+0x20] call [<unknown method>] mov eax, dword ptr [rbp-0x08]
- ;; size=126 bbWeight=1 PerfScore 24.75
+ ;; size=102 bbWeight=1 PerfScore 24.75
G_M64047_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 96 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 156 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 132, prolog size 10, PerfScore 32.25, instruction count 40, allocated bytes for code 132 (MethodHash=611705d0) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================ Unwind Info:

-27 (-12.68%) : 491292.dasm - Performance_2700:TestEntryPoint():int (Tier0)

@@ -16,24 +16,23 @@ G_M50724_IG01: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { push rbp sub rsp, 144 vzeroupper
- vmovaps xmmword ptr [rsp+0x80], xmm6
lea rbp, [rsp+0x90] vxorps xmm4, xmm4, xmm4 vmovdqu ymmword ptr [rbp-0x30], ymm4
- ;; size=37 bbWeight=1 PerfScore 7.08
+ ;; size=28 bbWeight=1 PerfScore 5.08
G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rcx, 0xD1FFAB1E mov edx, 1 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE
- mov rcx, 0xD1FFAB1E ; data for <unknown class>:<unknown field> - vmovups ymm6, ymmword ptr [rcx] - vmovups ymmword ptr [rbp-0x70], ymm6
+ mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field> + vmovups ymm0, ymmword ptr [rax] + vmovups ymmword ptr [rbp-0x70], ymm0
mov rcx, 0xD1FFAB1E mov edx, 1 call CORINFO_HELP_GETSHARED_NONGCSTATIC_BASE mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
- vmovups ymm6, ymmword ptr [rbp-0x70] - vmulps ymm0, ymm6, ymmword ptr [rax]
+ vmovups ymm0, ymmword ptr [rbp-0x70] + vmulps ymm0, ymm0, ymmword ptr [rax]
vmovups ymmword ptr [rbp-0x30], ymm0 vxorps ymm0, ymm0, ymm0 vmovups ymmword ptr [rbp-0x50], ymm0 @@ -46,26 +45,24 @@ G_M50724_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, xor eax, eax ;; size=129 bbWeight=1 PerfScore 36.08 G_M50724_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper add rsp, 144 pop rbp ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
G_M50724_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref mov eax, 100 ;; size=5 bbWeight=1 PerfScore 0.25 G_M50724_IG05: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x80]
vzeroupper add rsp, 144 pop rbp ret
- ;; size=21 bbWeight=1 PerfScore 6.75
+ ;; size=12 bbWeight=1 PerfScore 2.75
RWD00 dq 4000000040000000h, 4000000040000000h, 4000000040000000h, 4000000040000000h
-; Total bytes of code 213, prolog size 37, PerfScore 56.92, instruction count 40, allocated bytes for code 215 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
+; Total bytes of code 186, prolog size 28, PerfScore 46.92, instruction count 37, allocated bytes for code 188 (MethodHash=6b3739db) for method Performance_2700:TestEntryPoint():int (Tier0)
; ============================================================ Unwind Info: @@ -73,13 +70,11 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x14 - CountOfUnwindCodes: 5
+ SizeOfProlog : 0x08 + CountOfUnwindCodes: 3
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x14 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 8 * 16 = 128 = 0x00080
CodeOffset: 0x08 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small Size: 18 * 8 = 144 = 0x00090 CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

-20 (-12.58%) : 338336.dasm - CompareVectorWithZero:TestEqualityUsingReversedInputsint (Tier0)

@@ -6,61 +6,61 @@ ; Final local variable assignments ; ; V00 arg0 [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[]
-; V01 loc0 [V01 ] ( 1, 1 ) int -> [rbp-0x24] do-not-enreg[] must-init ld-addr-op
+; V01 loc0 [V01 ] ( 1, 1 ) int -> [rbp-0x04] do-not-enreg[] must-init ld-addr-op
; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
-; TEMP_01 simd64 -> [rbp-0x64]
+; TEMP_01 int -> [rbp-0x08] +; TEMP_02 simd64 -> [rbp-0x48]
;
-; Lcl frame size = 136
+; Lcl frame size = 112
G_M45123_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 136
+ sub rsp, 112
vzeroupper
- vmovaps xmmword ptr [rsp+0x70], xmm6 - lea rbp, [rsp+0x90]
+ lea rbp, [rsp+0x70]
xor eax, eax
- mov dword ptr [rbp-0x24], eax
+ mov dword ptr [rbp-0x04], eax
mov bword ptr [rbp+0x10], rcx
- ;; size=35 bbWeight=1 PerfScore 8.00
+ ;; size=22 bbWeight=1 PerfScore 5.00
G_M45123_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov dword ptr [rbp-0x24], ecx
+ xor eax, eax + mov dword ptr [rbp-0x04], eax + mov rax, bword ptr [rbp+0x10] + ; byrRegs +[rax] + vxorps ymm0, ymm0, ymm0 + vpcmpeqd k1, zmm0, zmmword ptr [rax] + kortestw k1, k1 + setb al + ; byrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x08], eax
mov rcx, bword ptr [rbp+0x10] ; byrRegs +[rcx]
- vxorps ymm0, ymm0, ymm0 - vpcmpeqd k1, zmm0, zmmword ptr [rcx] - kortestw k1, k1 - setb bl - movzx rbx, bl - mov rcx, bword ptr [rbp+0x10] - vmovups zmm6, zmmword ptr [rcx] - vmovups zmmword ptr [rbp-0x64], zmm6 - mov ecx, dword ptr [rbp-0x24]
+ vmovups zmm0, zmmword ptr [rcx] + vmovups zmmword ptr [rbp-0x48], zmm0 + mov ecx, dword ptr [rbp-0x04]
; byrRegs -[rcx] call [<unknown method>] vpbroadcastd zmm0, eax
- vmovups zmm6, zmmword ptr [rbp-0x64] - vpcmpeqd k1, zmm6, zmm0
+ vmovups zmm1, zmmword ptr [rbp-0x48] + vpcmpeqd k1, zmm1, zmm0
kortestw k1, k1
- setb cl - movzx rcx, cl - cmp ebx, ecx
+ setb al + movzx rax, al + xor ecx, ecx + cmp dword ptr [rbp-0x08], eax
sete cl
- movzx rcx, cl
call [<unknown method>] nop
- ;; size=105 bbWeight=1 PerfScore 30.33
+ ;; size=108 bbWeight=1 PerfScore 33.08
G_M45123_IG03: ; bbWeight=1, epilog, nogc, extend
- vmovaps xmm6, xmmword ptr [rsp+0x70]
vzeroupper
- add rsp, 136 - pop rbx
+ add rsp, 112
pop rbp ret
- ;; size=19 bbWeight=1 PerfScore 7.25
+ ;; size=9 bbWeight=1 PerfScore 2.75
-; Total bytes of code 159, prolog size 31, PerfScore 45.58, instruction count 39, allocated bytes for code 163 (MethodHash=d3254fbc) for method CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
+; Total bytes of code 139, prolog size 18, PerfScore 40.83, instruction count 36, allocated bytes for code 143 (MethodHash=d3254fbc) for method CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
; ============================================================ Unwind Info: @@ -68,14 +68,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x12 - CountOfUnwindCodes: 6
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x12 UnwindOp: UWOP_SAVE_XMM128 (8) OpInfo: XMM6 (6) - Scaled Small Offset: 7 * 16 = 112 = 0x00070 - CodeOffset: 0x09 UnwindOp: UWOP_ALLOC_LARGE (1) OpInfo: 0 - Scaled small - Size: 17 * 8 = 136 = 0x00088 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 13 * 8 + 8 = 112 = 0x70
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+14 (+43.75%) : 490962.dasm - TestGitHub22556:Add(TestGitHub22556,int):int (Tier0)

@@ -8,31 +8,35 @@ ; V00 arg0 [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] class-hnd <Test_GitHub_22556> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[] ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M12822_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp
+ sub rsp, 16 + lea rbp, [rsp+0x10]
mov gword ptr [rbp+0x10], rcx mov dword ptr [rbp+0x18], edx
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=17 bbWeight=1 PerfScore 3.75
G_M12822_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, gword ptr [rbp+0x10] ; gcrRegs +[rax]
- mov ecx, dword ptr [rax+0x08] - mov eax, 1
+ mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
+ mov dword ptr [rbp-0x04], eax + mov eax, 1
xor edx, edx idiv edx:eax, dword ptr [rbp+0x18]
- add eax, ecx - ;; size=19 bbWeight=1 PerfScore 28.75
+ add eax, dword ptr [rbp-0x04] + ;; size=23 bbWeight=1 PerfScore 31.50
G_M12822_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 32, prolog size 4, PerfScore 33.50, instruction count 12, allocated bytes for code 32 (MethodHash=dc14cde9) for method Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
+; Total bytes of code 46, prolog size 10, PerfScore 37.00, instruction count 15, allocated bytes for code 46 (MethodHash=dc14cde9) for method Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
; ============================================================ Unwind Info: @@ -40,9 +44,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+14 (+43.75%) : 491095.dasm - TestGitHub27027:Run(TestGitHub27027,int):int (Tier0)

@@ -8,31 +8,35 @@ ; V00 arg0 [V00 ] ( 1, 1 ) ref -> [rbp+0x10] do-not-enreg[] class-hnd <Test_GitHub_27027> ; V01 arg1 [V01 ] ( 1, 1 ) int -> [rbp+0x18] do-not-enreg[] ;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M51774_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp
+ sub rsp, 16 + lea rbp, [rsp+0x10]
mov gword ptr [rbp+0x10], rcx mov dword ptr [rbp+0x18], edx
- ;; size=11 bbWeight=1 PerfScore 3.25
+ ;; size=17 bbWeight=1 PerfScore 3.75
G_M51774_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rax, gword ptr [rbp+0x10] ; gcrRegs +[rax]
- mov ecx, dword ptr [rax+0x08] - mov eax, 1
+ mov eax, dword ptr [rax+0x08]
; gcrRegs -[rax]
+ mov dword ptr [rbp-0x04], eax + mov eax, 1
xor edx, edx idiv edx:eax, dword ptr [rbp+0x18]
- add eax, ecx - ;; size=19 bbWeight=1 PerfScore 28.75
+ add eax, dword ptr [rbp-0x04] + ;; size=23 bbWeight=1 PerfScore 31.50
G_M51774_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 32, prolog size 4, PerfScore 33.50, instruction count 12, allocated bytes for code 32 (MethodHash=380735c1) for method Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
+; Total bytes of code 46, prolog size 10, PerfScore 37.00, instruction count 15, allocated bytes for code 46 (MethodHash=380735c1) for method Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
; ============================================================ Unwind Info: @@ -40,9 +44,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+44.44%) : 425520.dasm - ModConst:I4Mod0(int):int (Tier0)

@@ -7,29 +7,33 @@ ; ; V00 arg0 [V00 ] ( 1, 1 ) int -> [rbp+0x10] do-not-enreg[] ;# V01 OutArgs [V01 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 int -> [rbp-0x04]
;
-; Lcl frame size = 0
+; Lcl frame size = 16
G_M32851_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- mov rbp, rsp
+ sub rsp, 16 + lea rbp, [rsp+0x10]
mov dword ptr [rbp+0x10], ecx
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=13 bbWeight=1 PerfScore 2.75
G_M32851_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov ecx, dword ptr [rbp+0x10]
mov eax, dword ptr [rbp+0x10]
- xor r8d, r8d
+ mov dword ptr [rbp-0x04], eax + mov eax, dword ptr [rbp+0x10] + xor ecx, ecx
cdq
- idiv edx:eax, r8d - mov eax, ecx
+ idiv edx:eax, ecx + mov eax, dword ptr [rbp-0x04]
sub eax, 0
- ;; size=18 bbWeight=1 PerfScore 28.25
+ ;; size=20 bbWeight=1 PerfScore 30.00
G_M32851_IG03: ; bbWeight=1, epilog, nogc, extend
+ add rsp, 16
pop rbp ret
- ;; size=2 bbWeight=1 PerfScore 1.50
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 27, prolog size 4, PerfScore 32.00, instruction count 12, allocated bytes for code 27 (MethodHash=c49f7fac) for method ModConst:I4_Mod_0(int):int (Tier0)
+; Total bytes of code 39, prolog size 10, PerfScore 34.50, instruction count 15, allocated bytes for code 39 (MethodHash=c49f7fac) for method ModConst:I4_Mod_0(int):int (Tier0)
; ============================================================ Unwind Info: @@ -37,9 +41,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x01 - CountOfUnwindCodes: 1
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 1 * 8 + 8 = 16 = 0x10
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

libraries.crossgen2.windows.x64.checked.mch

-2 (-1.79%) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

@@ -27,24 +27,24 @@ G_M50957_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M50957_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rcx, [rbp+0x18] call [<unknown method>]
- cvttsd2si rcx, xmm0 - mov qword ptr [rbp-0x08], rcx - mov ecx, -1 - movsxd rcx, ecx - cmp qword ptr [rbp-0x08], rcx
+ cvttsd2si rax, xmm0 + mov qword ptr [rbp-0x08], rax + mov eax, -1 + cdqe + cmp qword ptr [rbp-0x08], rax
jl SHORT G_M50957_IG03
- mov ecx, 0xD1FFAB1E - movsxd rcx, ecx - cmp qword ptr [rbp-0x08], rcx
+ mov eax, 0xD1FFAB1E + cdqe + cmp qword ptr [rbp-0x08], rax
jle SHORT G_M50957_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M50957_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov ecx, 62 call [<unknown method>] ;; size=11 bbWeight=1 PerfScore 3.25 G_M50957_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov edx, dword ptr [rbp-0x08] @@ -60,7 +60,7 @@ G_M50957_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=74d838f2) for method System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)
; ============================================================ Unwind Info:

-2 (-1.79%) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)

@@ -27,24 +27,24 @@ G_M28342_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, G_M28342_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz lea rcx, [rbp+0x18] call [<unknown method>]
- cvttsd2si rcx, xmm0 - mov qword ptr [rbp-0x08], rcx - mov ecx, -1 - movsxd rcx, ecx - cmp qword ptr [rbp-0x08], rcx
+ cvttsd2si rax, xmm0 + mov qword ptr [rbp-0x08], rax + mov eax, -1 + cdqe + cmp qword ptr [rbp-0x08], rax
jl SHORT G_M28342_IG03
- mov ecx, 0xD1FFAB1E - movsxd rcx, ecx - cmp qword ptr [rbp-0x08], rcx
+ mov eax, 0xD1FFAB1E + cdqe + cmp qword ptr [rbp-0x08], rax
jle SHORT G_M28342_IG04
- ;; size=47 bbWeight=1 PerfScore 17.50
+ ;; size=45 bbWeight=1 PerfScore 17.50
G_M28342_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov ecx, 62 call [<unknown method>] ;; size=11 bbWeight=1 PerfScore 3.25 G_M28342_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov edx, dword ptr [rbp-0x08] @@ -60,7 +60,7 @@ G_M28342_IG05: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 112, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 112 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
+; Total bytes of code 110, prolog size 16, PerfScore 35.00, instruction count 31, allocated bytes for code 110 (MethodHash=e8ec9149) for method System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
; ============================================================ Unwind Info:

+0 (0.00%) : 15397.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],int):ubyte (MinOpts)

@@ -24,8 +24,8 @@ G_M4887_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x18], edx ;; size=23 bbWeight=1 PerfScore 5.00 G_M4887_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x08], rcx
+ xor eax, eax + mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov edx, dword ptr [rbp+0x18]

+0 (0.00%) : 15403.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],int):int (MinOpts)

@@ -24,8 +24,8 @@ G_M44268_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x18], edx ;; size=23 bbWeight=1 PerfScore 5.00 G_M44268_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x08], rcx
+ xor eax, eax + mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov edx, dword ptr [rbp+0x18]

+0 (0.00%) : 15400.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[]):int (MinOpts)

@@ -24,8 +24,8 @@ G_M30483_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp+0x10], rcx ;; size=20 bbWeight=1 PerfScore 4.00 G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov r8, gword ptr [rbp-0x10] @@ -34,23 +34,23 @@ G_M30483_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rcx r8] mov dword ptr [rbp-0x04], eax
- mov rdx, gword ptr [rbp+0x10] - ; gcrRegs +[rdx] - cmp dword ptr [rdx+0x08], 0
+ mov rax, gword ptr [rbp+0x10] + ; gcrRegs +[rax] + cmp dword ptr [rax+0x08], 0
je SHORT G_M30483_IG03
- xor edx, edx - ; gcrRegs -[rdx]
+ xor eax, eax + ; gcrRegs -[rax]
cmp dword ptr [rbp-0x04], -1
- setne dl - mov dword ptr [rbp-0x14], edx
+ setne al + mov dword ptr [rbp-0x14], eax
jmp SHORT G_M30483_IG04 ;; size=52 bbWeight=1 PerfScore 18.75 G_M30483_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov dword ptr [rbp-0x14], 1 ;; size=7 bbWeight=1 PerfScore 1.00 G_M30483_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdx, qword ptr [(reloc)] ; const ptr - mov rdx, gword ptr [rdx]
+ mov rax, qword ptr [(reloc)] ; const ptr + mov rdx, gword ptr [rax]
; gcrRegs +[rdx] mov ecx, dword ptr [rbp-0x14] call [<unknown method>]

+2 (+1.28%) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -50,10 +50,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { call [<unknown method>] ; byrRegs -[rcx] mov dword ptr [rbp-0x04], eax
- xor ecx, ecx - mov dword ptr [rbp-0x08], ecx - xor ecx, ecx - mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + xor eax, eax + mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.50 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -62,26 +62,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edx, dword ptr [rbp-0x0C] call [<unknown method>] ; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax] - mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] mov edx, dword ptr [rbp-0x0C] call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x14] sub ecx, eax
- or ecx, dword ptr [rbp-0x08] - mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x08] + mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C] inc eax mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C] - cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C] + cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x08], 0 @@ -93,7 +95,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

libraries.pmi.windows.x64.checked.mch

+0 (0.00%) : 3856.dasm - Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter:ConvExprToLinqInContext(Microsoft.FSharp.Linq.RuntimeHelpers.LeafExpressionConverter+ConvEnv,Microsoft.FSharp.Quotations.FSharpExpr):System.Linq.Expressions.Expression (Tier0-MinOpts)

@@ -1340,33 +1340,33 @@ G_M12913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x08], rax cmp gword ptr [rbp-0x08], 0 je SHORT G_M12913_IG05
- mov r8, gword ptr [rbp-0x08] - ; gcrRegs +[r8] - mov r8, gword ptr [r8+0x08] - mov gword ptr [rbp-0x10], r8
+ mov rax, gword ptr [rbp-0x08] + mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x10], rax
;; size=33 bbWeight=1 PerfScore 12.00 G_M12913_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax r8] - mov r8, gword ptr [rbp+0x10]
+ ; gcrRegs -[rax] + mov rax, gword ptr [rbp+0x10] + ; gcrRegs +[rax] + mov r8, gword ptr [rax+0x08]
; gcrRegs +[r8]
- mov r8, gword ptr [r8+0x08]
mov rdx, gword ptr [rbp-0x10] ; gcrRegs +[rdx] mov rcx, 0xD1FFAB1E ; <unknown method> call [<unknown method>]
- ; gcrRegs -[rdx r8] +[rax]
+ ; gcrRegs -[rdx r8]
; gcr arg pop 0 mov gword ptr [rbp-0x18], rax ;; size=32 bbWeight=1 PerfScore 8.25 G_M12913_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax]
- mov rcx, gword ptr [rbp-0x18] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x13C0], rcx
+ mov rax, gword ptr [rbp-0x18] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x13C0], rax
jmp G_M12913_IG767 ;; size=16 bbWeight=1 PerfScore 4.00 G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18] ; gcrRegs +[rcx] call [<unknown method>] @@ -1375,16 +1375,16 @@ G_M12913_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x40], rax cmp gword ptr [rbp-0x40], 0 je SHORT G_M12913_IG06
- mov rcx, gword ptr [rbp-0x40]
+ mov rax, gword ptr [rbp-0x40] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x48], rax
- mov rcx, gword ptr [rbp-0x40]
+ mov rax, gword ptr [rbp-0x40] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 @@ -1425,16 +1425,16 @@ G_M12913_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x58], rax cmp gword ptr [rbp-0x58], 0 je SHORT G_M12913_IG07
- mov rcx, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x58] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x48], rax
- mov rcx, gword ptr [rbp-0x58]
+ mov rax, gword ptr [rbp-0x58] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 @@ -1475,16 +1475,16 @@ G_M12913_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x60], rax cmp gword ptr [rbp-0x60], 0 je SHORT G_M12913_IG08
- mov rcx, gword ptr [rbp-0x60]
+ mov rax, gword ptr [rbp-0x60] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x68], rax
- mov rcx, gword ptr [rbp-0x60]
+ mov rax, gword ptr [rbp-0x60] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 @@ -1519,9 +1519,9 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x78], rax cmp gword ptr [rbp-0x78], 0 je G_M12913_IG14
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 @@ -1538,47 +1538,45 @@ G_M12913_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp-0x80], rax cmp gword ptr [rbp-0x80], 0 je SHORT G_M12913_IG09
- mov rcx, gword ptr [rbp-0x80] - ; gcrRegs +[rcx] - cmp dword ptr [rcx+0x08], 1 - sete cl - ; gcrRegs -[rcx] - movzx rcx, cl - mov dword ptr [rbp-0x136C], ecx
+ mov rax, gword ptr [rbp-0x80] + cmp dword ptr [rax+0x08], 1 + sete al + ; gcrRegs -[rax] + movzx rax, al + mov dword ptr [rbp-0x136C], eax
jmp SHORT G_M12913_IG10 ;; size=134 bbWeight=1 PerfScore 46.25 G_M12913_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax] - xor ecx, ecx - mov dword ptr [rbp-0x136C], ecx
+ xor eax, eax + mov dword ptr [rbp-0x136C], eax
;; size=8 bbWeight=1 PerfScore 1.25 G_M12913_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz cmp dword ptr [rbp-0x136C], 0 je G_M12913_IG13
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78] + ; gcrRegs +[rax] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>]
- ; gcrRegs -[rcx] +[rax]
+ ; gcrRegs -[rcx]
; gcr arg pop 0 cmp gword ptr [rax+0x10], 0 je G_M12913_IG12
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x88], rax
- mov rcx, gword ptr [rbp-0x88] - ; gcrRegs +[rcx] - mov rcx, gword ptr [rcx+0x10] - cmp gword ptr [rcx+0x10], 0
+ mov rax, gword ptr [rbp-0x88] + mov rax, gword ptr [rax+0x10] + cmp gword ptr [rax+0x10], 0
jne SHORT G_M12913_IG11 jmp G_M12913_IG15 ;; size=82 bbWeight=1 PerfScore 29.00 G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18] ; gcrRegs +[rcx] call [<unknown method>] @@ -1587,27 +1585,26 @@ G_M12913_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov gword ptr [rbp-0x90], rax cmp gword ptr [rbp-0x90], 0 je G_M12913_IG19
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x1388], rax
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x1388] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x48], rcx
+ mov rax, gword ptr [rbp-0x1388] + mov gword ptr [rbp-0x48], rax
jmp G_M12913_IG16 ;; size=92 bbWeight=1 PerfScore 26.00 G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp+0x18] ; gcrRegs +[rcx] call [<unknown method>] @@ -1616,27 +1613,26 @@ G_M12913_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov gword ptr [rbp-0x90], rax cmp gword ptr [rbp-0x90], 0 je G_M12913_IG19
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x1380], rax
- mov rcx, gword ptr [rbp-0x90]
+ mov rax, gword ptr [rbp-0x90] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x08]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x1380] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x48], rcx
+ mov rax, gword ptr [rbp-0x1380] + mov gword ptr [rbp-0x48], rax
jmp G_M12913_IG16 ...

+2 (+1.28%) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { call [<unknown method>] ; byrRegs -[rcx] mov dword ptr [rbp-0x04], eax
- xor ecx, ecx - mov dword ptr [rbp-0x08], ecx - xor ecx, ecx - mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + xor eax, eax + mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.50 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edx, dword ptr [rbp-0x0C] call [<unknown method>] ; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax] - mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] mov edx, dword ptr [rbp-0x0C] call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x14] sub ecx, eax
- or ecx, dword ptr [rbp-0x08] - mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x08] + mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C] inc eax mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C] - cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C] + cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x08], 0 @@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

libraries_tests.run.windows.x64.Release.mch

-27 (-15.98%) : 38374.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)

@@ -31,47 +31,47 @@ G_M6520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=24 bbWeight=1 PerfScore 5.75 G_M6520_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d - mov dword ptr [rbp-0x08], r8d - mov r8d, dword ptr [rbp+0x28] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x60] - movzx r8, r8b - mov dword ptr [rsp+0x58], r8d - mov r8d, dword ptr [rbp+0x18] - movzx r8, r8b
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + mov eax, dword ptr [rbp+0x28] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x60] + movzx rax, al + mov dword ptr [rsp+0x58], eax + mov eax, dword ptr [rbp+0x18] + movzx r8, al
lea rcx, [rbp-0x08] mov edx, dword ptr [rbp+0x10] mov r9d, dword ptr [rbp+0x20] call [<unknown method>] mov eax, dword ptr [rbp-0x08]
- ;; size=139 bbWeight=1 PerfScore 27.00
+ ;; size=112 bbWeight=1 PerfScore 27.00
G_M6520_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 169 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 142 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
; ============================================================ Unwind Info:

-27 (-15.98%) : 13315.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)

@@ -31,47 +31,47 @@ G_M6520_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=24 bbWeight=1 PerfScore 5.75 G_M6520_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor r8d, r8d - mov dword ptr [rbp-0x08], r8d - mov r8d, dword ptr [rbp+0x28] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x60] - movzx r8, r8b - mov dword ptr [rsp+0x58], r8d - mov r8d, dword ptr [rbp+0x18] - movzx r8, r8b
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + mov eax, dword ptr [rbp+0x28] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x28], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x60] + movzx rax, al + mov dword ptr [rsp+0x58], eax + mov eax, dword ptr [rbp+0x18] + movzx r8, al
lea rcx, [rbp-0x08] mov edx, dword ptr [rbp+0x10] mov r9d, dword ptr [rbp+0x20] call [<unknown method>] mov eax, dword ptr [rbp-0x08]
- ;; size=139 bbWeight=1 PerfScore 27.00
+ ;; size=112 bbWeight=1 PerfScore 27.00
G_M6520_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 169 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.50, instruction count 43, allocated bytes for code 142 (MethodHash=5889e687) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
; ============================================================ Unwind Info:

-27 (-15.98%) : 38375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)

@@ -31,34 +31,34 @@ G_M29974_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x28], r9d ;; size=25 bbWeight=1 PerfScore 5.75 G_M29974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov r8d, dword ptr [rbp+0x30] - movzx r8, r8b - mov dword ptr [rsp+0x20], r8d - mov r8d, dword ptr [rbp+0x38] - movzx r8, r8b - mov dword ptr [rsp+0x28], r8d - xor r8d, r8d - mov dword ptr [rsp+0x30], r8d - mov r8d, dword ptr [rbp+0x40] - movzx r8, r8b - mov dword ptr [rsp+0x38], r8d - mov r8d, dword ptr [rbp+0x48] - movzx r8, r8b - mov dword ptr [rsp+0x40], r8d - mov r8d, dword ptr [rbp+0x50] - movzx r8, r8b - mov dword ptr [rsp+0x48], r8d - mov r8d, dword ptr [rbp+0x58] - movzx r8, r8b - mov dword ptr [rsp+0x50], r8d - mov r8d, dword ptr [rbp+0x60] - movzx r8, r8b - mov dword ptr [rsp+0x58], r8d - mov r8d, dword ptr [rbp+0x68] - movzx r8, r8b - mov dword ptr [rsp+0x60], r8d - mov r8d, dword ptr [rbp+0x20] - movzx r8, r8b
+ mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rsp+0x20], eax + mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rsp+0x28], eax + xor eax, eax + mov dword ptr [rsp+0x30], eax + mov eax, dword ptr [rbp+0x40] + movzx rax, al + mov dword ptr [rsp+0x38], eax + mov eax, dword ptr [rbp+0x48] + movzx rax, al + mov dword ptr [rsp+0x40], eax + mov eax, dword ptr [rbp+0x50] + movzx rax, al + mov dword ptr [rsp+0x48], eax + mov eax, dword ptr [rbp+0x58] + movzx rax, al + mov dword ptr [rsp+0x50], eax + mov eax, dword ptr [rbp+0x60] + movzx rax, al + mov dword ptr [rsp+0x58], eax + mov eax, dword ptr [rbp+0x68] + movzx rax, al + mov dword ptr [rsp+0x60], eax + mov eax, dword ptr [rbp+0x20] + movzx r8, al
mov rcx, bword ptr [rbp+0x10] ; byrRegs +[rcx] mov edx, dword ptr [rbp+0x18] @@ -66,14 +66,14 @@ G_M29974_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; byrRegs -[rcx] nop
- ;; size=138 bbWeight=1 PerfScore 26.75
+ ;; size=111 bbWeight=1 PerfScore 26.75
G_M29974_IG03: ; bbWeight=1, epilog, nogc, extend add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 169, prolog size 10, PerfScore 34.25, instruction count 43, allocated bytes for code 169 (MethodHash=c69b8ae9) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
+; Total bytes of code 142, prolog size 10, PerfScore 34.25, instruction count 43, allocated bytes for code 142 (MethodHash=c69b8ae9) for method Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
; ============================================================ Unwind Info:

+12 (+21.43%) : 134095.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 146943.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

+12 (+21.43%) : 11412.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System._Canon]:getIsInitialized():ubyte:this (Tier0)

@@ -8,40 +8,45 @@ ; V00 this [V00 ] ( 1, 1 ) byref -> [rbp+0x10] do-not-enreg[] this ; V01 TypeCtx [V01 ] ( 1, 1 ) long -> [rbp+0x18] do-not-enreg[] ; V02 OutArgs [V02 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace"
+; TEMP_01 ref -> [rbp-0x10]
;
-; Lcl frame size = 40
+; Lcl frame size = 48
G_M33715_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG push rbp
- push rbx - sub rsp, 40
+ sub rsp, 48
lea rbp, [rsp+0x30]
- mov qword ptr [rbp-0x10], rdx
+ xor eax, eax + mov qword ptr [rbp-0x10], rax + mov qword ptr [rbp-0x08], rdx
mov bword ptr [rbp+0x10], rcx mov qword ptr [rbp+0x18], rdx
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=28 bbWeight=1 PerfScore 6.00
G_M33715_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, bword ptr [rbp+0x10] - ; byrRegs +[rcx] - mov rbx, gword ptr [rcx] - ; gcrRegs +[rbx] - mov rcx, qword ptr [rbp+0x18] - ; byrRegs -[rcx] - call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE
+ mov rax, bword ptr [rbp+0x10]
; byrRegs +[rax]
- cmp rbx, gword ptr [rax+0x08]
+ mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x10], rax + mov rcx, qword ptr [rbp+0x18] + call CORINFO_HELP_GETGENERICS_GCSTATIC_BASE + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, gword ptr [rbp-0x10] + ; gcrRegs +[rcx] + cmp rcx, gword ptr [rax+0x08]
setne al ; byrRegs -[rax] movzx rax, al
- ;; size=26 bbWeight=1 PerfScore 9.25
+ ;; size=34 bbWeight=1 PerfScore 11.25
G_M33715_IG03: ; bbWeight=1, epilog, nogc, extend
- add rsp, 40 - pop rbx
+ add rsp, 48
pop rbp ret
- ;; size=7 bbWeight=1 PerfScore 2.25
+ ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 56, prolog size 15, PerfScore 17.25, instruction count 18, allocated bytes for code 56 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
+; Total bytes of code 68, prolog size 20, PerfScore 19.00, instruction count 20, allocated bytes for code 68 (MethodHash=5f6b7c4c) for method Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
; ============================================================ Unwind Info: @@ -49,11 +54,10 @@ Unwind Info: >> End offset : 0xd1ffab1e (not in unwind data) Version : 1 Flags : 0x00
- SizeOfProlog : 0x06 - CountOfUnwindCodes: 3
+ SizeOfProlog : 0x05 + CountOfUnwindCodes: 2
FrameRegister : none (0) FrameOffset : N/A (no FrameRegister) (Value=0) UnwindCodes :
- CodeOffset: 0x06 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 4 * 8 + 8 = 40 = 0x28 - CodeOffset: 0x02 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbx (3)
+ CodeOffset: 0x05 UnwindOp: UWOP_ALLOC_SMALL (2) OpInfo: 5 * 8 + 8 = 48 = 0x30
CodeOffset: 0x01 UnwindOp: UWOP_PUSH_NONVOL (0) OpInfo: rbp (5)

librariestestsnotieredcompilation.run.windows.x64.Release.mch

-38 (-4.69%) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)

@@ -66,16 +66,16 @@ G_M31680_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ;; size=5 bbWeight=0.50 PerfScore 0.50 G_M31680_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz nop
- xor ecx, ecx
+ xor eax, eax
cmp gword ptr [rbp+0x28], 0
- sete cl - mov dword ptr [rbp-0x04], ecx
+ sete al + mov dword ptr [rbp-0x04], eax
cmp dword ptr [rbp-0x04], 0 je SHORT G_M31680_IG06 nop
- mov ecx, dword ptr [rbp+0x30] - movzx rcx, cl - mov dword ptr [rbp-0x08], ecx
+ mov eax, dword ptr [rbp+0x30] + movzx rax, al + mov dword ptr [rbp-0x08], eax
cmp dword ptr [rbp-0x08], 0 je SHORT G_M31680_IG05 mov rcx, gword ptr [rbp+0x10] @@ -94,12 +94,12 @@ G_M31680_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref jmp G_M31680_IG19 ;; size=6 bbWeight=1 PerfScore 2.25 G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp+0x38] - movzx rcx, cl - test ecx, ecx - sete cl - movzx rcx, cl - mov dword ptr [rbp-0x0C], ecx
+ mov eax, dword ptr [rbp+0x38] + movzx rax, al + test eax, eax + sete al + movzx rax, al + mov dword ptr [rbp-0x0C], eax
cmp dword ptr [rbp-0x0C], 0 je G_M31680_IG09 nop @@ -110,18 +110,16 @@ G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x68], rax
- mov rcx, gword ptr [rbp-0x68] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x18], rcx
+ mov rax, gword ptr [rbp-0x68] + mov gword ptr [rbp-0x18], rax
mov rcx, 0xD1FFAB1E ; SerializationTypes.NamespaceTypeNameClashContainer
- ; gcrRegs -[rcx]
call CORINFO_HELP_TYPEHANDLE_TO_RUNTIMETYPEHANDLE ; gcr arg pop 0 mov gword ptr [rbp-0x70], rax
- mov rcx, gword ptr [rbp-0x18] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x78], rcx
+ mov rax, gword ptr [rbp-0x18] + mov gword ptr [rbp-0x78], rax
mov rcx, gword ptr [rbp-0x70]
+ ; gcrRegs +[rcx]
call [<unknown method>] ; gcrRegs -[rcx] ; gcr arg pop 0 @@ -134,9 +132,9 @@ G_M31680_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rax rcx rdx] ; gcr arg pop 0 mov dword ptr [rbp-0x84], eax
- mov ecx, dword ptr [rbp-0x84] - movzx rcx, cl - mov dword ptr [rbp-0x1C], ecx
+ mov eax, dword ptr [rbp-0x84] + movzx rax, al + mov dword ptr [rbp-0x1C], eax
cmp dword ptr [rbp-0x1C], 0 je SHORT G_M31680_IG07 nop @@ -164,13 +162,14 @@ G_M31680_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M31680_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- xor ecx, ecx - mov dword ptr [rsp+0x20], ecx - xor rcx, rcx - ; gcrRegs +[rcx] - mov gword ptr [rsp+0x28], rcx
+ xor eax, eax + mov dword ptr [rsp+0x20], eax + xor rax, rax + ; gcrRegs +[rax] + mov gword ptr [rsp+0x28], rax
; gcr arg write mov rcx, gword ptr [rbp+0x10]
+ ; gcrRegs +[rcx]
mov rdx, gword ptr [rbp+0x18] ; gcrRegs +[rdx] mov r8, gword ptr [rbp+0x20] @@ -178,12 +177,12 @@ G_M31680_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov r9, gword ptr [rbp+0x28] ; gcrRegs +[r9] call [<unknown method>]
- ; gcrRegs -[rcx rdx r8-r9]
+ ; gcrRegs -[rax rcx rdx r8-r9]
; gcr arg pop 0 nop
- mov ecx, dword ptr [rbp+0x38] - movzx rcx, cl - mov dword ptr [rbp-0x20], ecx
+ mov eax, dword ptr [rbp+0x38] + movzx rax, al + mov dword ptr [rbp-0x20], eax
cmp dword ptr [rbp-0x20], 0 je SHORT G_M31680_IG10 mov rcx, gword ptr [rbp+0x10] @@ -206,49 +205,47 @@ G_M31680_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x58], rax
- mov r9, gword ptr [rbp-0x58] - ; gcrRegs +[r9] - mov gword ptr [rbp-0x28], r9 - xor r9d, r9d - ; gcrRegs -[r9]
+ mov rax, gword ptr [rbp-0x58] + mov gword ptr [rbp-0x28], rax + xor eax, eax + ; gcrRegs -[rax]
cmp gword ptr [rbp-0x28], 0
- setne r9b - mov dword ptr [rbp-0x2C], r9d
+ setne al + mov dword ptr [rbp-0x2C], eax
cmp dword ptr [rbp-0x2C], 0 je G_M31680_IG14 nop
- xor r9d, r9d - mov dword ptr [rbp-0x30], r9d
+ xor eax, eax + mov dword ptr [rbp-0x30], eax
nop jmp SHORT G_M31680_IG13
- ;; size=62 bbWeight=1 PerfScore 21.25
+ ;; size=57 bbWeight=1 PerfScore 21.25
G_M31680_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rax]
nop
- mov r9, gword ptr [rbp-0x28] - ; gcrRegs +[r9]
+ mov rax, gword ptr [rbp-0x28] + ; gcrRegs +[rax]
mov ecx, dword ptr [rbp-0x30]
- cmp ecx, dword ptr [r9+0x08]
+ cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M31680_IG12 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[r9]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=19 bbWeight=1 PerfScore 7.25 -G_M31680_IG12: ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byref - ; gcrRegs +[r9]
+ ;; size=18 bbWeight=1 PerfScore 7.25 +G_M31680_IG12: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref + ; gcrRegs +[rax]
mov edx, ecx
- lea r9, bword ptr [r9+8*rdx+0x10] - ; gcrRegs -[r9] - ; byrRegs +[r9] - mov r9, gword ptr [r9] - ; gcrRegs +[r9] - ; byrRegs -[r9] - mov gword ptr [rbp-0x98], r9 - xor r9d, r9d - ; gcrRegs -[r9] - mov dword ptr [rsp+0x20], r9d - xor r9d, r9d - mov dword ptr [rsp+0x28], r9d
+ lea rax, bword ptr [rax+8*rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rax, gword ptr [rax] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x98], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x20], eax + xor eax, eax + mov dword ptr [rsp+0x28], eax
mov r9, gword ptr [rbp-0x98] ; gcrRegs +[r9] mov rcx, gword ptr [rbp+0x10] @@ -262,22 +259,22 @@ G_M31680_IG12: ; bbWeight=1, gcrefRegs=0200 {r9}, byrefRegs=0000 {}, byre ; gcr arg pop 0 nop nop
- mov ecx, dword ptr [rbp-0x30] - inc ecx - mov dword ptr [rbp-0x30], ecx - ;; size=80 bbWeight=1 PerfScore 15.00 -G_M31680_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref - mov r9d, dword ptr [rbp-0x30]
+ mov eax, dword ptr [rbp-0x30] + inc eax + mov dword ptr [rbp-0x30], eax + ;; size=76 bbWeight=1 PerfScore 15.00 +G_M31680_IG13: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz + mov eax, dword ptr [rbp-0x30]
mov rcx, gword ptr [rbp-0x28] ; gcrRegs +[rcx]
- cmp r9d, dword ptr [rcx+0x08] - setl r9b - movzx r9, r9b - mov dword ptr [rbp-0x34], r9d
+ cmp eax, dword ptr [rcx+0x08] + setl al + movzx rax, al + mov dword ptr [rbp-0x34], eax
cmp dword ptr [rbp-0x34], 0
- jne G_M31680_IG11
+ jne SHORT G_M31680_IG11
nop
- ;; size=35 bbWeight=1 PerfScore 10.50
+ ;; size=26 bbWeight=1 PerfScore 10.50
G_M31680_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz ; gcrRegs -[rcx] nop @@ -289,49 +286,47 @@ G_M31680_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x60], rax
- mov r9, gword ptr [rbp-0x60] - ; gcrRegs +[r9] - mov gword ptr [rbp-0x40], r9 - xor r9d, r9d - ; gcrRegs -[r9]
+ mov rax, gword ptr [rbp-0x60] + mov gword ptr [rbp-0x40], rax + xor eax, eax + ; gcrRegs -[rax]
cmp gword ptr [rbp-0x40], 0
- setne r9b - mov dword ptr [rbp-0x44], r9d
+ setne al + mov dword ptr [rbp-0x44], eax
cmp dword ptr [rbp-0x44], 0 je G_M31680_IG18 nop ...

-5 (-2.35%) : 64834.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)

@@ -41,18 +41,18 @@ G_M35358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ; gcrRegs -[rcx] ; gcr arg pop 0 nop
- xor r8d, r8d
+ xor eax, eax
cmp gword ptr [rbp+0x18], 0
- sete r8b - mov dword ptr [rbp-0x04], r8d
+ sete al + mov dword ptr [rbp-0x04], eax
cmp dword ptr [rbp-0x04], 0 je SHORT G_M35358_IG05 nop
- mov r8, 0xD1FFAB1E ; string handle - mov r8, gword ptr [r8]
+ mov rax, 0xD1FFAB1E ; string handle + mov r8, gword ptr [rax]
; gcrRegs +[r8]
- mov rdx, 0xD1FFAB1E ; string handle - mov rdx, gword ptr [rdx]
+ mov rax, 0xD1FFAB1E ; string handle + mov rdx, gword ptr [rax]
; gcrRegs +[rdx] mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] @@ -62,7 +62,7 @@ G_M35358_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nop nop jmp SHORT G_M35358_IG06
- ;; size=75 bbWeight=1 PerfScore 23.00
+ ;; size=72 bbWeight=1 PerfScore 23.00
G_M35358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] @@ -78,23 +78,24 @@ G_M35358_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcr arg pop 0 mov gword ptr [rbp-0x10], rax mov dword ptr [rsp+0x20], 1
- xor r9d, r9d - mov dword ptr [rsp+0x28], r9d
+ xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rsp+0x28], eax
mov r9, gword ptr [rbp-0x10] ; gcrRegs +[r9]
- mov rdx, 0xD1FFAB1E ; string handle - mov rdx, gword ptr [rdx]
+ mov rax, 0xD1FFAB1E ; string handle + mov rdx, gword ptr [rax]
; gcrRegs +[rdx]
- mov r8, 0xD1FFAB1E ; string handle - mov r8, gword ptr [r8]
+ mov rax, 0xD1FFAB1E ; string handle + mov r8, gword ptr [rax]
; gcrRegs +[r8] mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] call <unknown method>
- ; gcrRegs -[rax rcx rdx r8-r9]
+ ; gcrRegs -[rcx rdx r8-r9]
; gcr arg pop 0 nop
- ;; size=90 bbWeight=1 PerfScore 17.50
+ ;; size=88 bbWeight=1 PerfScore 17.50
G_M35358_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop ;; size=1 bbWeight=1 PerfScore 0.25 @@ -104,7 +105,7 @@ G_M35358_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 213, prolog size 27, PerfScore 53.00, instruction count 53, allocated bytes for code 213 (MethodHash=ab9475e1) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
+; Total bytes of code 208, prolog size 27, PerfScore 53.00, instruction count 53, allocated bytes for code 208 (MethodHash=ab9475e1) for method Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
; ============================================================ Unwind Info:

-7 (-2.33%) : 284014.dasm - System.Text.RegularExpressions.Generated.F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A_Get5755+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

@@ -49,37 +49,37 @@ G_M41965_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr G_M41965_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref nop nop
- mov rcx, gword ptr [rbp+0x10] - ; gcrRegs +[rcx] - mov ecx, dword ptr [rcx+0x4C] - ; gcrRegs -[rcx] - mov dword ptr [rbp-0x04], ecx - mov ecx, dword ptr [rbp-0x04] - mov dword ptr [rbp-0x18], ecx
+ mov rax, gword ptr [rbp+0x10] + ; gcrRegs +[rax] + mov eax, dword ptr [rax+0x4C] + ; gcrRegs -[rax] + mov dword ptr [rbp-0x04], eax + mov eax, dword ptr [rbp-0x04] + mov dword ptr [rbp-0x18], eax
mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] call [<unknown method>] ; byrRegs -[rcx] ; gcr arg pop 0 mov dword ptr [rbp-0x1C], eax
- mov r8d, dword ptr [rbp-0x1C] - add r8d, -6 - cmp dword ptr [rbp-0x18], r8d - setle r8b - movzx r8, r8b - mov dword ptr [rbp-0x08], r8d
+ mov eax, dword ptr [rbp-0x1C] + add eax, -6 + cmp dword ptr [rbp-0x18], eax + setle al + movzx rax, al + mov dword ptr [rbp-0x08], eax
cmp dword ptr [rbp-0x08], 0 je G_M41965_IG08 nop
- mov r8d, dword ptr [rbp-0x04] - add r8d, 3
+ mov eax, dword ptr [rbp-0x04] + lea r8d, [rax+0x03]
lea rdx, [rbp-0x40] mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] call [<unknown method>] ; byrRegs -[rcx] ; gcr arg pop 0
- ;; size=88 bbWeight=1 PerfScore 26.00
+ ;; size=81 bbWeight=1 PerfScore 26.25
G_M41965_IG05: ; bbWeight=1, nogc, extend vmovdqu xmm0, xmmword ptr [rbp-0x40] vmovdqu xmmword ptr [rbp-0x58], xmm0 @@ -90,46 +90,47 @@ G_M41965_IG06: ; bbWeight=1, isz, extend call CORINFO_HELP_GETSHARED_GCSTATIC_BASE_DYNAMICCLASS ; byrRegs +[rax] ; gcr arg pop 0
- mov rdx, gword ptr [rax+0x70] - ; gcrRegs +[rdx] - mov gword ptr [rbp-0x60], rdx
+ mov rax, gword ptr [rax+0x70] + ; gcrRegs +[rax] + ; byrRegs -[rax] + mov gword ptr [rbp-0x60], rax
mov rdx, gword ptr [rbp-0x60]
+ ; gcrRegs +[rdx]
lea rcx, [rbp-0x58] call [<unknown method>]
- ; gcrRegs -[rdx] - ; byrRegs -[rax]
+ ; gcrRegs -[rax rdx]
; gcr arg pop 0 mov dword ptr [rbp-0x44], eax
- mov ecx, dword ptr [rbp-0x44] - mov dword ptr [rbp-0x0C], ecx - xor ecx, ecx
+ mov eax, dword ptr [rbp-0x44] + mov dword ptr [rbp-0x0C], eax + xor eax, eax
cmp dword ptr [rbp-0x0C], 0
- setge cl - mov dword ptr [rbp-0x10], ecx
+ setge al + mov dword ptr [rbp-0x10], eax
cmp dword ptr [rbp-0x10], 0 je SHORT G_M41965_IG07 nop
- mov ecx, dword ptr [rbp-0x04] - add ecx, dword ptr [rbp-0x0C] - mov rax, gword ptr [rbp+0x10] - ; gcrRegs +[rax] - mov dword ptr [rax+0x4C], ecx
+ mov eax, dword ptr [rbp-0x04] + add eax, dword ptr [rbp-0x0C] + mov rcx, gword ptr [rbp+0x10] + ; gcrRegs +[rcx] + mov dword ptr [rcx+0x4C], eax
mov dword ptr [rbp-0x14], 1 nop jmp SHORT G_M41965_IG09 ;; size=93 bbWeight=1 PerfScore 27.75 G_M41965_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rax]
+ ; gcrRegs -[rcx]
nop ;; size=1 bbWeight=1 PerfScore 0.25 G_M41965_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x10] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x28], rcx
+ mov rax, gword ptr [rbp+0x10] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x28], rax
mov rcx, bword ptr [rbp+0x18]
- ; gcrRegs -[rcx]
; byrRegs +[rcx] call [<unknown method>]
+ ; gcrRegs -[rax]
; byrRegs -[rcx] ; gcr arg pop 0 mov dword ptr [rbp-0x2C], eax @@ -151,7 +152,7 @@ G_M41965_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=9 bbWeight=1 PerfScore 1.75
-; Total bytes of code 301, prolog size 46, PerfScore 87.83, instruction count 80, allocated bytes for code 301 (MethodHash=39fd5c12) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
+; Total bytes of code 294, prolog size 46, PerfScore 88.08, instruction count 80, allocated bytes for code 294 (MethodHash=39fd5c12) for method System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
; ============================================================ Unwind Info:

+2 (+0.85%) : 178903.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)

@@ -44,18 +44,17 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x10], rax
- mov rcx, gword ptr [rbp-0x10] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x08], rcx - mov rcx, gword ptr [rbp-0x08] - mov gword ptr [rbp-0x18], rcx - xor ecx, ecx - ; gcrRegs -[rcx] - mov dword ptr [rbp-0x1C], ecx
+ mov rax, gword ptr [rbp-0x10] + mov gword ptr [rbp-0x08], rax + mov rax, gword ptr [rbp-0x08] + mov gword ptr [rbp-0x18], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x1C], eax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] call [<unknown method>]
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x28], rax mov rcx, 0xD1FFAB1E ; <unknown class> @@ -71,11 +70,12 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rax rcx rdx r8] ; gcr arg pop 0
- mov rcx, 0xD1FFAB1E - ; gcrRegs +[rcx] - mov gword ptr [rsp+0x20], rcx
+ mov rax, 0xD1FFAB1E + ; gcrRegs +[rax] + mov gword ptr [rsp+0x20], rax
; gcr arg write mov rcx, gword ptr [rbp-0x28]
+ ; gcrRegs +[rcx]
mov rdx, gword ptr [rbp-0x30] ; gcrRegs +[rdx] mov r8, 0xD1FFAB1E @@ -83,10 +83,11 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov r9, 0xD1FFAB1E ; gcrRegs +[r9] call [<unknown method>]
- ; gcrRegs -[rcx rdx r8-r9]
+ ; gcrRegs -[rax rcx rdx r8-r9]
; gcr arg pop 0 mov dword ptr [rbp-0x34], eax
- mov ecx, dword ptr [rbp-0x1C]
+ mov eax, dword ptr [rbp-0x1C] + mov ecx, eax
add ecx, dword ptr [rbp-0x34] mov r8, gword ptr [rbp+0x10] ; gcrRegs +[r8] @@ -103,14 +104,14 @@ G_M35357_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rax rcx rdx] ; gcr arg pop 0 nop
- ;; size=187 bbWeight=1 PerfScore 43.25
+ ;; size=189 bbWeight=1 PerfScore 43.50
G_M35357_IG05: ; bbWeight=1, epilog, nogc, extend add rsp, 112 pop rbp ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 235, prolog size 28, PerfScore 56.58, instruction count 50, allocated bytes for code 235 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
+; Total bytes of code 237, prolog size 28, PerfScore 56.83, instruction count 51, allocated bytes for code 237 (MethodHash=c46a75e2) for method System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
; ============================================================ Unwind Info:

+44 (+1.21%) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)

@@ -157,14 +157,12 @@ G_M26197_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr ; gcr arg pop 0 ;; size=5 bbWeight=0.50 PerfScore 0.50 G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x20] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x18], rcx
+ mov rax, gword ptr [rbp+0x20] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x18], rax
nop mov rcx, 0xD1FFAB1E ; <unknown class>
- ; gcrRegs -[rcx]
call CORINFO_HELP_NEWSFAST
- ; gcrRegs +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x140], rax mov rcx, gword ptr [rbp-0x140] @@ -172,28 +170,28 @@ G_M26197_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [<unknown method>] ; gcrRegs -[rax rcx] ; gcr arg pop 0
- mov rcx, gword ptr [rbp-0x140] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x10], rcx - xor ecx, ecx - ; gcrRegs -[rcx] - mov dword ptr [rbp-0x1C], ecx
+ mov rax, gword ptr [rbp-0x140] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x10], rax + xor eax, eax + ; gcrRegs -[rax] + mov dword ptr [rbp-0x1C], eax
nop jmp G_M26197_IG71 ;; size=66 bbWeight=1 PerfScore 14.00 G_M26197_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [rbp+0x10] - mov rcx, qword ptr [rcx+0x38] - mov rcx, qword ptr [rcx] - cmp qword ptr [rcx+0x158], 0
+ mov rax, qword ptr [rbp+0x10] + mov rax, qword ptr [rax+0x38] + mov rax, qword ptr [rax] + cmp qword ptr [rax+0x158], 0
je SHORT G_M26197_IG07 ;; size=21 bbWeight=1 PerfScore 9.00 G_M26197_IG06: ; bbWeight=0.80, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [rbp+0x10] - mov rcx, qword ptr [rcx+0x38] - mov rcx, qword ptr [rcx] - mov rcx, qword ptr [rcx+0x158] - mov qword ptr [rbp-0x150], rcx
+ mov rax, qword ptr [rbp+0x10] + mov rax, qword ptr [rax+0x38] + mov rax, qword ptr [rax] + mov rax, qword ptr [rax+0x158] + mov qword ptr [rbp-0x150], rax
jmp SHORT G_M26197_IG08 ;; size=27 bbWeight=0.80 PerfScore 8.00 G_M26197_IG07: ; bbWeight=0.20, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -214,36 +212,36 @@ G_M26197_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [<unknown method>] ; gcrRegs -[rax rcx] ; gcr arg pop 0
- mov rcx, gword ptr [rbp-0x148] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x28], rcx
+ mov rax, gword ptr [rbp-0x148] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x28], rax
nop
- mov rcx, gword ptr [rbp-0x28] - mov gword ptr [rbp-0x158], rcx - mov rcx, gword ptr [rbp+0x28] - mov eax, dword ptr [rbp-0x1C] - cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp-0x28] + mov gword ptr [rbp-0x158], rax + mov rax, gword ptr [rbp+0x28] + mov ecx, dword ptr [rbp-0x1C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG09 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0 ;; size=72 bbWeight=1 PerfScore 18.25
-G_M26197_IG09: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rcx] - mov edx, eax
+G_M26197_IG09: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10] - ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, rax
; byrRegs +[rcx] call [<unknown method>] ; gcrRegs +[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0 mov gword ptr [rbp-0x160], rax
- mov rcx, gword ptr [rbp-0x158] - ; gcrRegs +[rcx] - lea rcx, bword ptr [rcx+0x08] - ; gcrRegs -[rcx]
+ mov rax, gword ptr [rbp-0x158] + lea rcx, bword ptr [rax+0x08]
; byrRegs +[rcx] mov rdx, gword ptr [rbp-0x160] ; gcrRegs +[rdx] @@ -259,26 +257,26 @@ G_M26197_IG09: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr ; gcrRegs -[rcx rdx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x168], rax
- mov rcx, gword ptr [rbp+0x28] - ; gcrRegs +[rcx] - mov eax, dword ptr [rbp-0x1C] - ; gcrRegs -[rax] - cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp+0x28] + mov ecx, dword ptr [rbp-0x1C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG10 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=93 bbWeight=1 PerfScore 26.00 -G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rcx] - mov edx, eax
+ ;; size=96 bbWeight=1 PerfScore 26.25 +G_M26197_IG10: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10] - ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, rax
; byrRegs +[rcx] call [<unknown method>] ; gcrRegs +[rax]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0 mov gword ptr [rbp-0x170], rax mov rcx, gword ptr [rbp-0x168] @@ -312,14 +310,13 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr ; gcrRegs -[rdx r8] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x188], rax
- mov rcx, gword ptr [rbp-0x188] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x30], rcx - xor ecx, ecx - ; gcrRegs -[rcx]
+ mov rax, gword ptr [rbp-0x188] + mov gword ptr [rbp-0x30], rax + xor eax, eax + ; gcrRegs -[rax]
cmp gword ptr [rbp-0x30], 0
- setne cl - mov dword ptr [rbp-0x3C], ecx
+ setne al + mov dword ptr [rbp-0x3C], eax
cmp dword ptr [rbp-0x3C], 0 je G_M26197_IG25 nop @@ -327,30 +324,30 @@ G_M26197_IG10: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr ; gcrRegs +[rcx] cmp dword ptr [rcx], ecx call <unknown method>
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rcx] +[rax]
; gcr arg pop 0 mov gword ptr [rbp-0x358], rax
- mov rcx, gword ptr [rbp-0x358] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x48], rcx - mov rcx, gword ptr [rbp+0x28] - mov eax, dword ptr [rbp-0x1C] - ; gcrRegs -[rax] - cmp eax, dword ptr [rcx+0x08]
+ mov rax, gword ptr [rbp-0x358] + mov gword ptr [rbp-0x48], rax + mov rax, gword ptr [rbp+0x28] + mov ecx, dword ptr [rbp-0x1C] + cmp ecx, dword ptr [rax+0x08]
jb SHORT G_M26197_IG11 call CORINFO_HELP_RNGCHKFAIL
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
; gcr arg pop 0
- ;; size=218 bbWeight=1 PerfScore 54.75 -G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz - ; gcrRegs +[rcx] - mov edx, eax
+ ;; size=221 bbWeight=1 PerfScore 55.00 +G_M26197_IG11: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz + ; gcrRegs +[rax] + mov edx, ecx
imul rdx, rdx, 64
- lea rcx, bword ptr [rcx+rdx+0x10] - ; gcrRegs -[rcx]
+ lea rax, bword ptr [rax+rdx+0x10] + ; gcrRegs -[rax] + ; byrRegs +[rax] + mov rcx, rax
; byrRegs +[rcx] call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rax rcx]
; gcr arg pop 0 mov dword ptr [rbp-0x35C], eax cmp dword ptr [rbp-0x35C], 0 @@ -366,11 +363,9 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr ; gcrRegs -[rcx] +[rax] ; gcr arg pop 0 mov gword ptr [rbp-0x420], rax
- mov rcx, gword ptr [rbp-0x420] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x58], rcx
+ mov rax, gword ptr [rbp-0x420] + mov gword ptr [rbp-0x58], rax
lea rcx, [rbp-0x58]
- ; gcrRegs -[rcx]
mov rdx, 0xD1FFAB1E ; System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor] call [<unknown method>] ; gcrRegs -[rax] @@ -378,7 +373,7 @@ G_M26197_IG11: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr mov dword ptr [rbp-0x424], eax cmp dword ptr [rbp-0x424], 1 je SHORT G_M26197_IG13
- ;; size=103 bbWeight=1 PerfScore 30.00
+ ;; size=106 bbWeight=1 PerfScore 30.25
G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz mov rcx, gword ptr [rbp-0x48] ; gcrRegs +[rcx] @@ -391,9 +386,9 @@ G_M26197_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, ...

+2 (+1.28%) : 230240.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan1[ubyte],System.ReadOnlySpan1[ubyte]):ubyte (MinOpts)

@@ -48,10 +48,10 @@ G_M16092_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 { call [<unknown method>] ; byrRegs -[rcx] mov dword ptr [rbp-0x04], eax
- xor ecx, ecx - mov dword ptr [rbp-0x08], ecx - xor ecx, ecx - mov dword ptr [rbp-0x0C], ecx
+ xor eax, eax + mov dword ptr [rbp-0x08], eax + xor eax, eax + mov dword ptr [rbp-0x0C], eax
jmp SHORT G_M16092_IG06 ;; size=25 bbWeight=1 PerfScore 9.50 G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref @@ -60,26 +60,28 @@ G_M16092_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edx, dword ptr [rbp-0x0C] call [<unknown method>] ; byrRegs -[rcx] +[rax]
- movzx rcx, byte ptr [rax] - mov dword ptr [rbp-0x14], ecx
+ movzx rax, byte ptr [rax] + ; byrRegs -[rax] + mov dword ptr [rbp-0x14], eax
mov rcx, bword ptr [rbp+0x18] ; byrRegs +[rcx] mov edx, dword ptr [rbp-0x0C] call [<unknown method>]
- ; byrRegs -[rcx]
+ ; byrRegs -[rcx] +[rax]
movzx rax, byte ptr [rax] ; byrRegs -[rax] mov ecx, dword ptr [rbp-0x14] sub ecx, eax
- or ecx, dword ptr [rbp-0x08] - mov dword ptr [rbp-0x08], ecx
+ mov eax, ecx + or eax, dword ptr [rbp-0x08] + mov dword ptr [rbp-0x08], eax
mov eax, dword ptr [rbp-0x0C] inc eax mov dword ptr [rbp-0x0C], eax
- ;; size=54 bbWeight=1 PerfScore 21.50
+ ;; size=56 bbWeight=1 PerfScore 21.75
G_M16092_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x0C] - cmp ecx, dword ptr [rbp-0x04]
+ mov eax, dword ptr [rbp-0x0C] + cmp eax, dword ptr [rbp-0x04]
jl SHORT G_M16092_IG05 xor eax, eax cmp dword ptr [rbp-0x08], 0 @@ -91,7 +93,7 @@ G_M16092_IG07: ; bbWeight=1, epilog, nogc, extend ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 156, prolog size 10, PerfScore 57.75, instruction count 49, allocated bytes for code 156 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
+; Total bytes of code 158, prolog size 10, PerfScore 58.00, instruction count 50, allocated bytes for code 158 (MethodHash=2c6ec123) for method System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
; ============================================================ Unwind Info:

realworld.run.windows.x64.checked.mch

+0 (0.00%) : 34959.dasm - System.Management.Automation.PowerShellAssemblyLoadContext:InitializeTypeCatalog():System.Collections.Generic.Dictionary`2System.String,System.String

@@ -36,17 +36,18 @@ G_M20070_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov edx, 0x1B6B call [<unknown method>] ; gcrRegs -[rax rcx r8]
- mov rcx, gword ptr [rbp-0x10] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x08], rcx
+ mov rax, gword ptr [rbp-0x10] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x08], rax
mov rcx, gword ptr [rbp-0x08]
+ ; gcrRegs +[rcx]
mov rdx, 0xD1FFAB1E ; gcrRegs +[rdx] mov r8, 0xD1FFAB1E ; gcrRegs +[r8] cmp dword ptr [rcx], ecx call [<unknown method>]
- ; gcrRegs -[rcx rdx r8]
+ ; gcrRegs -[rax rcx rdx r8]
mov rcx, gword ptr [rbp-0x08] ; gcrRegs +[rcx] mov rdx, 0xD1FFAB1E

+0 (0.00%) : 16384.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -21,8 +21,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp+0x10], rcx ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov r8, gword ptr [rbp-0x10]

+6 (+0.00%) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

@@ -2481,12 +2481,12 @@ G_M23076_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp+0x18], edx ;; size=72 bbWeight=1 PerfScore 14.08 G_M23076_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rcx, gword ptr [rbp+0x10] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x2A8], rcx
+ mov rax, gword ptr [rbp+0x10] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x2A8], rax
;; size=11 bbWeight=1 PerfScore 2.00 G_M23076_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp-0x2A8] ; gcrRegs +[rcx] cmp dword ptr [rcx], ecx @@ -2513,38 +2513,39 @@ G_M23076_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, cmp dword ptr [rcx], ecx call [<unknown method>] ; gcrRegs -[rcx r8]
- mov rcx, gword ptr [rbp-0x08] - ; gcrRegs +[rcx] - mov rcx, gword ptr [rcx+0x08] - mov gword ptr [rbp-0x28], rcx - mov rcx, gword ptr [rbp-0x08] - vmovdqu ymm0, ymmword ptr [rcx+0x10]
+ mov rax, gword ptr [rbp-0x08] + ; gcrRegs +[rax] + mov rax, gword ptr [rax+0x08] + mov gword ptr [rbp-0x28], rax + mov rax, gword ptr [rbp-0x08] + vmovdqu ymm0, ymmword ptr [rax+0x10]
vmovdqu ymmword ptr [rbp-0x58], ymm0
- vmovdqu xmm0, xmmword ptr [rcx+0x2C]
+ vmovdqu xmm0, xmmword ptr [rax+0x2C]
vmovdqu xmmword ptr [rbp-0x3C], xmm0
- mov ecx, dword ptr [rbp-0x14] - ; gcrRegs -[rcx] - sub ecx, dword ptr [rbp-0x10] - mov dword ptr [rbp-0x5C], ecx - mov rcx, gword ptr [rbp-0x2A8] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x68], rcx
+ mov eax, dword ptr [rbp-0x14] + ; gcrRegs -[rax] + sub eax, dword ptr [rbp-0x10] + mov dword ptr [rbp-0x5C], eax + mov rax, gword ptr [rbp-0x2A8] + ; gcrRegs +[rax] + mov gword ptr [rbp-0x68], rax
mov rcx, gword ptr [rbp-0x28]
+ ; gcrRegs +[rcx]
call [<unknown method>]
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax rcx]
cmp eax, 67 jne SHORT G_M23076_IG05 mov dword ptr [rbp-0x2AC], 1 jmp SHORT G_M23076_IG06 ;; size=106 bbWeight=1 PerfScore 38.75 G_M23076_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov dword ptr [rbp-0x2AC], ecx
+ xor eax, eax + mov dword ptr [rbp-0x2AC], eax
;; size=8 bbWeight=1 PerfScore 1.25 G_M23076_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov ecx, dword ptr [rbp-0x2AC] - movzx rcx, cl - mov dword ptr [rbp-0x6C], ecx
+ mov eax, dword ptr [rbp-0x2AC] + movzx rax, al + mov dword ptr [rbp-0x6C], eax
mov rcx, gword ptr [rbp-0x28] ; gcrRegs +[rcx] call [<unknown method>] @@ -2557,45 +2558,44 @@ G_M23076_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, call [CORINFO_HELP_CHKCASTCLASS] ; gcrRegs -[rdx] +[rax] mov gword ptr [rbp-0x78], rax
- mov rcx, gword ptr [rbp-0x78]
+ mov rax, gword ptr [rbp-0x78] + mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
call [<unknown method>] ; gcrRegs -[rcx] mov gword ptr [rbp-0x80], rax cmp gword ptr [rbp-0x80], 0 je SHORT G_M23076_IG07
- mov r8, gword ptr [rbp-0x2A8] - ; gcrRegs +[r8] - movzx r8, byte ptr [r8+0x40] - ; gcrRegs -[r8] - mov dword ptr [rbp-0x2B0], r8d - jmp SHORT G_M23076_IG08 - ;; size=97 bbWeight=1 PerfScore 28.75 -G_M23076_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov rax, gword ptr [rbp-0x2A8] + movzx rax, byte ptr [rax+0x40]
; gcrRegs -[rax]
- xor r8d, r8d - mov dword ptr [rbp-0x2B0], r8d - ;; size=10 bbWeight=1 PerfScore 1.25
+ mov dword ptr [rbp-0x2B0], eax + jmp SHORT G_M23076_IG08 + ;; size=95 bbWeight=1 PerfScore 28.75 +G_M23076_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref + xor eax, eax + mov dword ptr [rbp-0x2B0], eax + ;; size=8 bbWeight=1 PerfScore 1.25
G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov r8d, dword ptr [rbp-0x2B0] - movzx r8, r8b - mov dword ptr [rbp-0x70], r8d - mov r8, gword ptr [rbp-0x2A8] - ; gcrRegs +[r8] - mov r8, gword ptr [r8+0x30] - mov gword ptr [rbp-0x88], r8 - mov r8, gword ptr [rbp-0x2A8] - cmp dword ptr [r8+0x38], 0
+ mov eax, dword ptr [rbp-0x2B0] + movzx rax, al + mov dword ptr [rbp-0x70], eax + mov rax, gword ptr [rbp-0x2A8] + ; gcrRegs +[rax] + mov rax, gword ptr [rax+0x30] + mov gword ptr [rbp-0x88], rax + mov rax, gword ptr [rbp-0x2A8] + cmp dword ptr [rax+0x38], 0
jg G_M23076_IG25
- mov r8, gword ptr [rbp-0x2A8] - mov r8, gword ptr [r8+0x30]
+ mov rax, gword ptr [rbp-0x2A8] + mov r8, gword ptr [rax+0x30] + ; gcrRegs +[r8]
mov rcx, gword ptr [rbp-0x2A8] ; gcrRegs +[rcx] mov rdx, gword ptr [rbp-0x28] ; gcrRegs +[rdx] call [<unknown method>]
- ; gcrRegs -[rcx rdx r8]
+ ; gcrRegs -[rax rcx rdx r8]
test eax, eax jne G_M23076_IG26 mov rcx, gword ptr [rbp-0x28] @@ -2605,14 +2605,14 @@ G_M23076_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov dword ptr [rbp-0x4D44], eax cmp dword ptr [rbp-0x4D44], 201 ja SHORT G_M23076_IG09
- mov ecx, dword ptr [rbp-0x4D44] - mov ecx, ecx - lea rax, [reloc @RWD00] - mov eax, dword ptr [rax+4*rcx]
+ mov eax, dword ptr [rbp-0x4D44] + mov eax, eax + lea rcx, [reloc @RWD00] + mov ecx, dword ptr [rcx+4*rax]
lea rdx, G_M23076_IG02
- add rax, rdx - jmp rax - ;; size=145 bbWeight=1 PerfScore 35.50
+ add rcx, rdx + jmp rcx + ;; size=141 bbWeight=1 PerfScore 35.50
G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov rcx, gword ptr [rbp-0x28] ; gcrRegs +[rcx] @@ -2627,10 +2627,10 @@ G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] test rax, rax je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x88] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x90], rcx
+ mov rax, gword ptr [rbp-0x88] + mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp-0x90]
+ ; gcrRegs +[rcx]
call [<unknown method>] ; gcrRegs -[rcx] mov rcx, rax @@ -2650,9 +2650,9 @@ G_M23076_IG09: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref call [CORINFO_HELP_CHKCASTCLASS] ; gcrRegs -[rdx] mov gword ptr [rbp-0x98], rax
- mov rcx, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x98] + mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
mov rdx, gword ptr [rbp-0x28] ; gcrRegs +[rdx] call [<unknown method>] @@ -2668,10 +2668,10 @@ G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] +[rax] test rax, rax je G_M23076_IG28
- mov rcx, gword ptr [rbp-0x88] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x90], rcx
+ mov rax, gword ptr [rbp-0x88] + mov gword ptr [rbp-0x90], rax
mov rcx, gword ptr [rbp-0x90]
+ ; gcrRegs +[rcx]
call [<unknown method>] ; gcrRegs -[rcx] mov rcx, rax @@ -2698,35 +2698,35 @@ G_M23076_IG10: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref mov gword ptr [rbp-0x80], rax cmp gword ptr [rbp-0x80], 0 je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x98]
+ mov rax, gword ptr [rbp-0x98] + mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx]
- mov rcx, gword ptr [rcx+0x10]
mov rdx, gword ptr [rbp-0x28] ; gcrRegs +[rdx] call [<unknown method>] ; gcrRegs -[rax rcx rdx] test eax, eax je G_M23076_IG40
- mov rcx, gword ptr [rbp-0x98] - ; gcrRegs +[rcx] - mov rcx, gword ptr [rcx+0x10] - mov gword ptr [rbp-0xA8], rcx - mov rcx, gword ptr [rbp-0x28] - mov gword ptr [rbp-0xA0], rcx
+ mov rax, gword ptr [rbp-0x98] + ; gcrRegs +[rax] + mov rax, gword ptr [rax+0x10] + mov gword ptr [rbp-0xA8], rax + mov rax, gword ptr [rbp-0x28] + mov gword ptr [rbp-0xA0], rax
jmp G_M23076_IG37 ;; size=205 bbWeight=1 PerfScore 50.25 G_M23076_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; gcrRegs -[rcx]
+ ; gcrRegs -[rax]
mov rcx, gword ptr [rbp-0x88] ; gcrRegs +[rcx] call [<unknown method>] ; gcrRegs -[rcx] +[rax] test rax, rax je G_M23076_IG29
- mov rcx, gword ptr [rbp-0x88] - ; gcrRegs +[rcx] - mov gword ptr [rbp-0x90], rcx
...

smoke_tests.nativeaot.windows.x64.checked.mch

+0 (0.00%) : 31922.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)

@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movaps xmmword ptr [rbp-0x10], xmm4 ;; size=29 bbWeight=1 PerfScore 10.08 G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x08]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x10]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x18]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x18]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x20]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x20]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx

+0 (0.00%) : 32290.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[]) (MinOpts)

@@ -22,8 +22,8 @@ G_M3757_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, mov gword ptr [rbp+0x10], rcx ;; size=20 bbWeight=1 PerfScore 4.00 G_M3757_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- xor ecx, ecx - mov gword ptr [rbp-0x10], rcx
+ xor eax, eax + mov gword ptr [rbp-0x10], rax
mov rcx, gword ptr [rbp+0x10] ; gcrRegs +[rcx] mov r8, gword ptr [rbp-0x10]

+0 (0.00%) : 9948.dasm - Interfaces+TestGenericAnalysis:Run() (MinOpts)

@@ -29,8 +29,8 @@ G_M40288_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, movaps xmmword ptr [rbp-0x10], xmm4 ;; size=29 bbWeight=1 PerfScore 10.08 G_M40288_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x08]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x08]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -62,8 +62,8 @@ G_M40288_IG03: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x10]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x10]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -95,8 +95,8 @@ G_M40288_IG05: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x18]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x18]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx @@ -128,8 +128,8 @@ G_M40288_IG07: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref ; gcrRegs -[rcx] ;; size=34 bbWeight=0 PerfScore 0.00 G_M40288_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rcx, qword ptr [(reloc)] - mov rcx, gword ptr [rcx+0x20]
+ mov rax, qword ptr [(reloc)] + mov rcx, gword ptr [rax+0x20]
; gcrRegs +[rcx] lea r10, [(reloc)] ; function address xor rdx, rdx

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x64.checked.mch 3 0 1 2 -0 +2
benchmarks.run_pgo.windows.x64.checked.mch 31,774 4,894 1,847 25,033 -19,055 +5,555
benchmarks.run_tiered.windows.x64.checked.mch 22,945 3,610 1,194 18,141 -16,133 +3,833
coreclr_tests.run.windows.x64.checked.mch 264,856 38,014 23,640 203,202 -204,845 +344,231
libraries.crossgen2.windows.x64.checked.mch 8 2 1 5 -4 +2
libraries.pmi.windows.x64.checked.mch 2 0 1 1 -0 +2
libraries_tests.run.windows.x64.Release.mch 324,523 35,553 10,394 278,576 -214,099 +50,989
librariestestsnotieredcompilation.run.windows.x64.Release.mch 13,453 3,758 316 9,379 -16,692 +4,054
realworld.run.windows.x64.checked.mch 3 0 1 2 -0 +6
smoke_tests.nativeaot.windows.x64.checked.mch 3 0 0 3 -0 +0
657,570 85,831 37,395 534,344 -470,828 +408,674

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x64.checked.mch 27,852 4 27,848 234 (0.83%) 234 (0.83%)
benchmarks.run_pgo.windows.x64.checked.mch 101,589 49,789 51,800 129 (0.13%) 129 (0.13%)
benchmarks.run_tiered.windows.x64.checked.mch 54,309 36,842 17,467 76 (0.14%) 76 (0.14%)
coreclr_tests.run.windows.x64.checked.mch 573,543 340,982 232,561 446 (0.08%) 446 (0.08%)
libraries.crossgen2.windows.x64.checked.mch 243,425 15 243,410 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x64.checked.mch 306,292 6 306,286 2,206 (0.72%) 2,206 (0.72%)
libraries_tests.run.windows.x64.Release.mch 672,161 479,203 192,958 1,126 (0.17%) 1,126 (0.17%)
librariestestsnotieredcompilation.run.windows.x64.Release.mch 318,317 21,885 296,432 2,194 (0.68%) 2,194 (0.68%)
realworld.run.windows.x64.checked.mch 36,488 3 36,485 402 (1.09%) 402 (1.09%)
smoke_tests.nativeaot.windows.x64.checked.mch 32,409 11 32,398 3 (0.01%) 3 (0.01%)
2,366,385 928,740 1,437,645 6,816 (0.29%) 6,816 (0.29%)

jit-analyze output

benchmarks.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 8536477 (overridden on cmd)
Total bytes of diff: 8536479 (overridden on cmd)
Total bytes of delta: 2 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           2 : 15566.dasm (1.28 % of base)

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

Top method regressions (bytes):
           2 (1.28 % of base) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method regressions (percentages):
           2 (1.28 % of base) : 15566.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

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


benchmarks.run_pgo.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 35464350 (overridden on cmd)
Total bytes of diff: 35450850 (overridden on cmd)
Total bytes of delta: -13500 (-0.04 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          69 : 55625.dasm (3.78 % of base)
          57 : 4309.dasm (1.49 % of base)
          57 : 3558.dasm (1.49 % of base)
          45 : 41866.dasm (1.61 % of base)
          45 : 33174.dasm (2.16 % of base)
          34 : 50220.dasm (1.03 % of base)
          30 : 1100.dasm (8.72 % of base)
          28 : 89069.dasm (3.45 % of base)
          26 : 49186.dasm (1.87 % of base)
          23 : 32899.dasm (2.82 % of base)
          23 : 33432.dasm (2.72 % of base)
          23 : 32950.dasm (2.42 % of base)
          23 : 52566.dasm (3.80 % of base)
          23 : 5843.dasm (2.72 % of base)
          22 : 17767.dasm (4.63 % of base)
          22 : 33689.dasm (8.27 % of base)
          22 : 7738.dasm (1.76 % of base)
          21 : 52042.dasm (1.41 % of base)
          21 : 70664.dasm (1.41 % of base)
          21 : 61855.dasm (3.41 % of base)

Top file improvements (bytes):
        -227 : 58739.dasm (-0.92 % of base)
        -225 : 63539.dasm (-3.56 % of base)
        -172 : 13518.dasm (-1.58 % of base)
        -119 : 20472.dasm (-11.29 % of base)
        -117 : 25221.dasm (-10.68 % of base)
         -99 : 47431.dasm (-4.56 % of base)
         -99 : 47466.dasm (-4.56 % of base)
         -83 : 67493.dasm (-1.24 % of base)
         -77 : 61633.dasm (-0.69 % of base)
         -77 : 66907.dasm (-0.69 % of base)
         -69 : 45925.dasm (-3.63 % of base)
         -69 : 45934.dasm (-3.63 % of base)
         -68 : 51133.dasm (-5.51 % of base)
         -66 : 50221.dasm (-5.35 % of base)
         -65 : 61466.dasm (-1.38 % of base)
         -65 : 65743.dasm (-1.18 % of base)
         -64 : 49387.dasm (-7.91 % of base)
         -61 : 61822.dasm (-1.10 % of base)
         -61 : 67006.dasm (-0.79 % of base)
         -60 : 1149.dasm (-2.40 % of base)

81 total files with Code Size differences (43 improved, 38 regressed), 20 unchanged.

Top method regressions (bytes):
          69 (3.78 % of base) : 55625.dasm - System.Security.Cryptography.X509Certificates.ChainPal:.cctor() (Tier0)
          57 (1.49 % of base) : 4309.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
          57 (1.49 % of base) : 3558.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Instrumented Tier0)
          45 (1.61 % of base) : 41866.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Instrumented Tier0)
          45 (2.16 % of base) : 33174.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
          34 (1.03 % of base) : 50220.dasm - Neural:read_data_file():this (Instrumented Tier0)
          30 (8.72 % of base) : 1100.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Instrumented Tier0)
          28 (3.45 % of base) : 89069.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberIndented(System.ReadOnlySpan`1[ushort],long):this (Tier0)
          26 (1.87 % of base) : 49186.dasm - NeuralJagged:Init() (Instrumented Tier0)
          23 (2.72 % of base) : 33432.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
          23 (2.72 % of base) : 5843.dasm - System.Linq.Lookup`2[System.__Canon,System.__Canon]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.__Canon]:this (Instrumented Tier0)
          23 (3.80 % of base) : 52566.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValueIndented(System.DateTime):this (Tier0)
          23 (2.42 % of base) : 32950.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Instrumented Tier0)
          23 (2.82 % of base) : 32899.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Tier0)
          22 (4.63 % of base) : 17767.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
          22 (8.27 % of base) : 33689.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
          22 (1.76 % of base) : 7738.dasm - System.Threading.CancellationTokenSource:Register(System.Delegate,System.Object,System.Threading.SynchronizationContext,System.Threading.ExecutionContext):System.Threading.CancellationTokenRegistration:this (Tier0)
          21 (3.41 % of base) : 61855.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionOrSourceMemberMethodSymbol:get_IteratorElementTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier0)
          21 (1.41 % of base) : 52042.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Instrumented Tier0)
          21 (1.41 % of base) : 70664.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Instrumented Tier0)

Top method improvements (bytes):
        -227 (-0.92 % of base) : 58739.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
        -225 (-3.56 % of base) : 63539.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
        -172 (-1.58 % of base) : 13518.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
        -119 (-11.29 % of base) : 20472.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
        -117 (-10.68 % of base) : 25221.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
         -99 (-4.56 % of base) : 47431.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
         -99 (-4.56 % of base) : 47466.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Instrumented Tier0)
         -83 (-1.24 % of base) : 67493.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Instrumented Tier0)
         -77 (-0.69 % of base) : 61633.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
         -77 (-0.69 % of base) : 66907.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Instrumented Tier0)
         -69 (-3.63 % of base) : 45925.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
         -69 (-3.63 % of base) : 45934.dasm - AssignRect:first_assignments(int[,],short[,]):int (Instrumented Tier0)
         -68 (-5.51 % of base) : 51133.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (Tier0)
         -66 (-5.35 % of base) : 50221.dasm - Neural:.cctor() (Tier0)
         -65 (-1.18 % of base) : 65743.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
         -65 (-1.38 % of base) : 61466.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
         -64 (-7.91 % of base) : 49387.dasm - MessagePack.MessagePackBinary:WriteBytes(byref,int,ubyte[],int,int):int (Tier0)
         -61 (-0.79 % of base) : 67006.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Instrumented Tier0)
         -61 (-1.10 % of base) : 61822.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
         -60 (-2.40 % of base) : 1149.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Instrumented Tier0)

Top method regressions (percentages):
          12 (21.43 % of base) : 64215.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 60127.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          15 (20.00 % of base) : 54635.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
           9 (16.36 % of base) : 851.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          18 (12.95 % of base) : 20151.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          11 (9.40 % of base) : 58367.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
          30 (8.72 % of base) : 1100.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Instrumented Tier0)
          22 (8.27 % of base) : 33689.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
          11 (7.97 % of base) : 58371.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
           6 (7.32 % of base) : 4711.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
          11 (7.14 % of base) : 14016.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
           3 (6.25 % of base) : 2832.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Instrumented Tier0)
           3 (6.25 % of base) : 1386.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
          12 (5.97 % of base) : 50344.dasm - System.Tests.Perf_HashCode:Combine_7():int:this (Instrumented Tier0)
           6 (5.83 % of base) : 32734.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
           2 (5.56 % of base) : 2687.dasm - System.Buffers.Utilities:SelectBucketIndex(int):int (Instrumented Tier0)
           2 (5.56 % of base) : 777.dasm - System.Buffers.Utilities:SelectBucketIndex(int):int (Tier0)
           4 (5.56 % of base) : 14824.dasm - System.String:GetHashCode():int:this (Instrumented Tier0)
           4 (5.56 % of base) : 1801.dasm - System.String:GetHashCode():int:this (Tier0)
          10 (5.52 % of base) : 52503.dasm - PerfLabTests.LowLevelPerf:IntegerFormatting():System.String:this (Instrumented Tier0)

Top method improvements (percentages):
         -33 (-17.28 % of base) : 24937.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
         -24 (-15.38 % of base) : 60693.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
        -119 (-11.29 % of base) : 20472.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
         -18 (-11.11 % of base) : 81297.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
         -33 (-11.00 % of base) : 50079.dasm - System.Half:RoundPackToHalf(ubyte,short,ushort):ushort (Tier0)
        -117 (-10.68 % of base) : 25221.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
         -12 (-9.84 % of base) : 22947.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsAllBenchmark():ubyte:this (Tier0)
         -12 (-9.84 % of base) : 33302.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 17151.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAllBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 24941.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 16346.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:InequalityOperatorBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 16937.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:GreaterThanAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.68 % of base) : 35490.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
         -12 (-9.68 % of base) : 39607.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.52 % of base) : 15913.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
         -12 (-9.52 % of base) : 17321.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
         -12 (-9.52 % of base) : 17326.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MultiplyBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
         -12 (-9.52 % of base) : 16594.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
         -12 (-9.52 % of base) : 35549.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:ExclusiveOrOperatorBenchmark():System.Numerics.Vector`1[uint]:this (Tier0)
         -12 (-9.52 % of base) : 16926.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:XorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)


benchmarks.run_tiered.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 12551598 (overridden on cmd)
Total bytes of diff: 12539298 (overridden on cmd)
Total bytes of delta: -12300 (-0.10 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
          69 : 35067.dasm (3.78 % of base)
          57 : 3956.dasm (1.64 % of base)
          45 : 29568.dasm (2.50 % of base)
          45 : 21024.dasm (2.16 % of base)
          34 : 33050.dasm (1.07 % of base)
          30 : 1034.dasm (11.81 % of base)
          28 : 50983.dasm (3.45 % of base)
          26 : 32812.dasm (1.95 % of base)
          23 : 19836.dasm (2.82 % of base)
          23 : 34323.dasm (3.80 % of base)
          23 : 4850.dasm (3.11 % of base)
          22 : 11549.dasm (4.63 % of base)
          22 : 25646.dasm (8.27 % of base)
          22 : 6561.dasm (7.77 % of base)
          22 : 12803.dasm (3.62 % of base)
          21 : 34447.dasm (1.63 % of base)
          21 : 39961.dasm (3.41 % of base)
          20 : 46760.dasm (2.60 % of base)
          20 : 13980.dasm (1.91 % of base)
          20 : 6268.dasm (0.78 % of base)

Top file improvements (bytes):
        -227 : 36769.dasm (-0.92 % of base)
        -225 : 41589.dasm (-3.56 % of base)
        -172 : 9031.dasm (-1.58 % of base)
        -119 : 14148.dasm (-11.29 % of base)
        -117 : 18283.dasm (-10.68 % of base)
         -96 : 31362.dasm (-4.53 % of base)
         -78 : 19590.dasm (-3.13 % of base)
         -74 : 16664.dasm (-1.89 % of base)
         -73 : 39716.dasm (-0.83 % of base)
         -69 : 1083.dasm (-3.34 % of base)
         -68 : 33141.dasm (-5.51 % of base)
         -66 : 33051.dasm (-5.35 % of base)
         -65 : 39548.dasm (-1.38 % of base)
         -64 : 32181.dasm (-7.91 % of base)
         -61 : 39927.dasm (-1.10 % of base)
         -59 : 52353.dasm (-7.55 % of base)
         -57 : 14577.dasm (-5.21 % of base)
         -55 : 5332.dasm (-2.81 % of base)
         -54 : 30162.dasm (-4.02 % of base)
         -54 : 29450.dasm (-2.82 % of base)

81 total files with Code Size differences (44 improved, 37 regressed), 20 unchanged.

Top method regressions (bytes):
          69 (3.78 % of base) : 35067.dasm - System.Security.Cryptography.X509Certificates.ChainPal:.cctor() (Tier0)
          57 (1.64 % of base) : 3956.dasm - System.Threading.PortableThreadPool+HillClimbing:Update(int,double,int):System.ValueTuple`2[int,int]:this (Tier0)
          45 (2.50 % of base) : 29568.dasm - System.Xml.Schema.XsdDateTime+Parser:Parse(System.String,int):ubyte:this (Tier0)
          45 (2.16 % of base) : 21024.dasm - System.Xml.XmlDocument:.cctor() (Tier0)
          34 (1.07 % of base) : 33050.dasm - Neural:read_data_file():this (Tier0)
          30 (11.81 % of base) : 1034.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Tier0)
          28 (3.45 % of base) : 50983.dasm - System.Text.Json.Utf8JsonWriter:WriteNumberIndented(System.ReadOnlySpan`1[ushort],long):this (Tier0)
          26 (1.95 % of base) : 32812.dasm - NeuralJagged:Init() (Tier0)
          23 (3.11 % of base) : 4850.dasm - System.Linq.Lookup`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:GetGrouping(System.__Canon,ubyte):System.Linq.Grouping`2[System.__Canon,System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]:this (Tier0)
          23 (3.80 % of base) : 34323.dasm - System.Text.Json.Utf8JsonWriter:WriteStringValueIndented(System.DateTime):this (Tier0)
          23 (2.82 % of base) : 19836.dasm - System.Threading.Channels.BoundedChannel`1+BoundedChannelReader[System.__Canon]:WaitToReadAsync(System.Threading.CancellationToken):System.Threading.Tasks.ValueTask`1[ubyte]:this (Tier0)
          22 (3.62 % of base) : 12803.dasm - System.Linq.Lookup`2[int,System.__Canon]:GetGrouping(int,ubyte):System.Linq.Grouping`2[int,System.__Canon]:this (Tier0)
          22 (4.63 % of base) : 11549.dasm - System.Runtime.CompilerServices.AsyncValueTaskMethodBuilder`1[System.__Canon]:get_Task():System.Threading.Tasks.ValueTask`1[System.__Canon]:this (Tier0)
          22 (8.27 % of base) : 25646.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
          22 (7.77 % of base) : 6561.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1[int]:get_Task():System.Threading.Tasks.ValueTask`1[int]:this (Tier0)
          21 (3.41 % of base) : 39961.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LocalFunctionOrSourceMemberMethodSymbol:get_IteratorElementTypeWithAnnotations():Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations:this (Tier0)
          21 (1.63 % of base) : 34447.dasm - System.IO.Tests.Perf_RandomAccess+<WriteGatherAsync>d__22:MoveNext():this (Tier0)
          20 (0.78 % of base) : 6268.dasm - System.Collections.Generic.Dictionary`2[System.__Canon,System.__Canon]:AddRange(System.Collections.Generic.IEnumerable`1[System.Collections.Generic.KeyValuePair`2[System.__Canon,System.__Canon]]):this (Tier0)
          20 (2.60 % of base) : 46760.dasm - System.Text.Json.Utf8JsonWriter:WritePropertyNameIndented(System.ReadOnlySpan`1[ubyte],ubyte):this (Tier0)
          20 (1.91 % of base) : 13980.dasm - System.Text.Unicode.Utf8:ToUtf16(System.ReadOnlySpan`1[ubyte],System.Span`1[ushort],byref,byref,ubyte,ubyte):int (Tier0)

Top method improvements (bytes):
        -227 (-0.92 % of base) : 36769.dasm - Microsoft.CodeAnalysis.AttributeDescription:.cctor() (Tier0)
        -225 (-3.56 % of base) : 41589.dasm - System.Reflection.Metadata.Ecma335.MetadataSizes:.ctor(System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],System.Collections.Immutable.ImmutableArray`1[int],int,ubyte):this (Tier0)
        -172 (-1.58 % of base) : 9031.dasm - System.Reflection.Metadata.MetadataReader:InitializeTableReaders(System.Reflection.Internal.MemoryBlock,ubyte,int[],int[]):this (Tier0)
        -119 (-11.29 % of base) : 14148.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
        -117 (-10.68 % of base) : 18283.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
         -96 (-4.53 % of base) : 31362.dasm - IDEAEncryption:de_key_idea(ushort[],ushort[]) (Tier0)
         -78 (-3.13 % of base) : 19590.dasm - System.Text.Json.JsonReaderHelper:TryUnescape(System.ReadOnlySpan`1[ubyte],System.Span`1[ubyte],int,byref):ubyte (Tier0)
         -74 (-1.89 % of base) : 16664.dasm - System.Number:TryParseNumber[ushort](byref,ulong,int,byref,System.Globalization.NumberFormatInfo):ubyte (Tier0)
         -73 (-0.83 % of base) : 39716.dasm - Microsoft.CodeAnalysis.CSharp.RefSafetyAnalysis:CheckValEscape(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,uint,uint,ubyte,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag):ubyte:this (Tier0)
         -69 (-3.34 % of base) : 1083.dasm - System.PackedSpanHelpers:IndexOfAny[System.SpanHelpers+DontNegate`1[short]](byref,short,short,short,int):int (Tier0)
         -68 (-5.51 % of base) : 33141.dasm - System.Net.WebSockets.ManagedWebSocket:WriteFrameToSendBuffer(ubyte,ubyte,ubyte,System.ReadOnlySpan`1[ubyte]):int:this (Tier0)
         -66 (-5.35 % of base) : 33051.dasm - Neural:.cctor() (Tier0)
         -65 (-1.38 % of base) : 39548.dasm - Microsoft.CodeAnalysis.CSharp.Binder:<CreateConversion>g__createConversion|210_0(Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,Microsoft.CodeAnalysis.CSharp.ConversionGroup,ubyte,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol,Microsoft.CodeAnalysis.CSharp.BindingDiagnosticBag,ubyte):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
         -64 (-7.91 % of base) : 32181.dasm - MessagePack.MessagePackBinary:WriteBytes(byref,int,ubyte[],int,int):int (Tier0)
         -61 (-1.10 % of base) : 39927.dasm - Microsoft.CodeAnalysis.CSharp.LocalRewriter:MakeConversionNodeCore(Microsoft.CodeAnalysis.CSharp.BoundConversion,Microsoft.CodeAnalysis.SyntaxNode,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.Conversion,ubyte,ubyte,Microsoft.CodeAnalysis.ConstantValue,Microsoft.CodeAnalysis.CSharp.Symbols.TypeSymbol):Microsoft.CodeAnalysis.CSharp.BoundExpression:this (Tier0)
         -59 (-7.55 % of base) : 52353.dasm - HardwareIntrinsics.RayTracer.Packet256Tracer:MinIntersections(HardwareIntrinsics.RayTracer.RayPacket256,HardwareIntrinsics.RayTracer.Scene):HardwareIntrinsics.RayTracer.Intersections:this (Tier0)
         -57 (-5.21 % of base) : 14577.dasm - System.Text.Json.Tests.Perf_Reader:ReadReturnBytes():ubyte[]:this (Tier0)
         -55 (-2.81 % of base) : 5332.dasm - System.Reflection.Emit.RuntimeMethodBuilder:CreateMethodBodyHelper(System.Reflection.Emit.RuntimeILGenerator):this (Tier0)
         -54 (-2.82 % of base) : 29450.dasm - AssignJagged:first_assignments(int[][],short[][]):int (Tier0)
         -54 (-4.02 % of base) : 30162.dasm - AssignRect:first_assignments(int[,],short[,]):int (Tier0)

Top method regressions (percentages):
          12 (21.43 % of base) : 38122.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          15 (20.00 % of base) : 35053.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
           9 (16.36 % of base) : 806.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          18 (12.95 % of base) : 16456.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          30 (11.81 % of base) : 1034.dasm - System.RuntimeType:IsSubclassOf(System.Type):ubyte:this (Tier0)
          11 (9.40 % of base) : 36429.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)
          22 (8.27 % of base) : 25646.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder:get_Task():System.Threading.Tasks.ValueTask:this (Tier0)
          11 (7.97 % of base) : 36433.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[Microsoft.CodeAnalysis.Collections.SegmentedHashSet`1+Entry[System.__Canon]]:get_Item(int):byref:this (Tier0)
          14 (7.78 % of base) : 52788.dasm - PerfLabTests.LowLevelPerf:NewDelegateClassEmptyStaticFn():this (Tier0)
          22 (7.77 % of base) : 6561.dasm - System.Runtime.CompilerServices.PoolingAsyncValueTaskMethodBuilder`1[int]:get_Task():System.Threading.Tasks.ValueTask`1[int]:this (Tier0)
          13 (7.60 % of base) : 16455.dasm - System.Xml.Schema.XsdDateTime:WriteXDigits(System.Span`1[ushort],int,int,int) (Tier0)
           6 (7.32 % of base) : 11934.dasm - Jil.Common.ExtensionMethods+<>c__17`1[System.__Canon]:<GetCustomAttribute>b__17_0(System.Reflection.CustomAttributeData):ubyte:this (Tier0)
          11 (7.14 % of base) : 7060.dasm - System.Runtime.Serialization.DataContracts.DataContract:WriteRootElement(System.Runtime.Serialization.XmlWriterDelegator,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this (Tier0)
          12 (6.63 % of base) : 34376.dasm - System.Tests.Perf_HashCode:Combine_8():int:this (Tier0)
          10 (6.62 % of base) : 33966.dasm - PerfLabTests.LowLevelPerf:IntegerFormatting():System.String:this (Tier0)
          13 (6.28 % of base) : 50219.dasm - PerfLabTests.CastingPerf2.CastingPerf:ObjInt():this (Tier0)
           3 (6.25 % of base) : 1333.dasm - System.Runtime.InteropServices.GCHandle:GetHandleValue(long):long (Tier0)
           8 (6.06 % of base) : 30742.dasm - System.Tests.Perf_HashCode:Combine_4():int:this (Tier0)
           6 (5.83 % of base) : 21541.dasm - System.Runtime.Intrinsics.Tests.Perf_Vector128Of`1[int]:LessThanBenchmark():System.Runtime.Intrinsics.Vector128`1[int]:this (Tier0)
          14 (5.69 % of base) : 54306.dasm - System.Tests.Perf_Array:SetupArrayRetrieve1D():this (Tier0)

Top method improvements (percentages):
         -33 (-17.28 % of base) : 18417.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:ConditionalSelectBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
         -24 (-15.38 % of base) : 38686.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
        -119 (-11.29 % of base) : 14148.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
         -18 (-11.11 % of base) : 48180.dasm - System.Numerics.Tests.Perf_VectorOf`1[double]:DotBenchmark():double:this (Tier0)
         -33 (-11.00 % of base) : 33587.dasm - System.Half:RoundPackToHalf(ubyte,short,ushort):ushort (Tier0)
        -117 (-10.68 % of base) : 18283.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
         -12 (-9.84 % of base) : 19744.dasm - System.Numerics.Tests.Perf_VectorOf`1[int]:EqualsAllBenchmark():ubyte:this (Tier0)
         -12 (-9.84 % of base) : 20899.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:EqualityOperatorBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 13905.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAllBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 19766.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:LessThanOrEqualAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 12949.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:InequalityOperatorBenchmark():ubyte:this (Tier0)
         -12 (-9.76 % of base) : 13883.dasm - System.Numerics.Tests.Perf_VectorOf`1[uint]:GreaterThanAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.68 % of base) : 26182.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAllBenchmark():ubyte:this (Tier0)
         -12 (-9.68 % of base) : 28300.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:GreaterThanOrEqualAnyBenchmark():ubyte:this (Tier0)
         -12 (-9.52 % of base) : 13945.dasm - System.Numerics.Tests.Perf_VectorOf`1[byte]:BitwiseOrBenchmark():System.Numerics.Vector`1[byte]:this (Tier0)
         -12 (-9.52 % of base) : 27846.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseAndBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
         -12 (-9.52 % of base) : 12947.dasm - System.Numerics.Tests.Perf_VectorOf`1[long]:BitwiseOrOperatorBenchmark():System.Numerics.Vector`1[long]:this (Tier0)
         -12 (-9.52 % of base) : 12942.dasm - System.Numerics.Tests.Perf_VectorOf`1[short]:MultiplyBenchmark():System.Numerics.Vector`1[short]:this (Tier0)
         -12 (-9.52 % of base) : 9375.dasm - System.Numerics.Tests.Perf_VectorOf`1[ubyte]:SubtractBenchmark():System.Numerics.Vector`1[ubyte]:this (Tier0)
         -12 (-9.52 % of base) : 13881.dasm - System.Numerics.Tests.Perf_VectorOf`1[ushort]:XorBenchmark():System.Numerics.Vector`1[ushort]:this (Tier0)


coreclr_tests.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 392239828 (overridden on cmd)
Total bytes of diff: 392379214 (overridden on cmd)
Total bytes of delta: 139386 (0.04 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3477 : 184104.dasm (11.44 % of base)
        3477 : 184100.dasm (11.44 % of base)
        1294 : 309953.dasm (3.07 % of base)
        1278 : 3218.dasm (2.85 % of base)
        1248 : 487726.dasm (6.98 % of base)
        1183 : 309960.dasm (2.86 % of base)
         967 : 309929.dasm (2.34 % of base)
         964 : 309864.dasm (2.37 % of base)
         964 : 3168.dasm (2.21 % of base)
         963 : 3196.dasm (2.19 % of base)
         938 : 309642.dasm (1.88 % of base)
         938 : 309660.dasm (1.88 % of base)
         938 : 2845.dasm (1.84 % of base)
         935 : 309656.dasm (1.87 % of base)
         935 : 309636.dasm (1.87 % of base)
         935 : 309644.dasm (1.87 % of base)
         935 : 309648.dasm (1.87 % of base)
         935 : 309640.dasm (1.87 % of base)
         935 : 309652.dasm (1.87 % of base)
         935 : 309664.dasm (1.87 % of base)

Top file improvements (bytes):
        -811 : 217008.dasm (-6.83 % of base)
        -810 : 216994.dasm (-6.75 % of base)
        -810 : 222536.dasm (-6.80 % of base)
        -808 : 216975.dasm (-6.89 % of base)
        -808 : 216998.dasm (-6.79 % of base)
        -808 : 216983.dasm (-6.87 % of base)
        -806 : 472700.dasm (-6.89 % of base)
        -806 : 472705.dasm (-6.87 % of base)
        -806 : 472709.dasm (-6.75 % of base)
        -806 : 472711.dasm (-6.78 % of base)
        -806 : 472715.dasm (-6.84 % of base)
        -806 : 474411.dasm (-6.79 % of base)
        -785 : 217003.dasm (-6.42 % of base)
        -774 : 472713.dasm (-6.34 % of base)
        -718 : 216988.dasm (-5.95 % of base)
        -710 : 472707.dasm (-5.88 % of base)
        -537 : 227996.dasm (-4.42 % of base)
        -511 : 396307.dasm (-1.64 % of base)
        -284 : 284973.dasm (-2.27 % of base)
        -284 : 284985.dasm (-2.63 % of base)

85 total files with Code Size differences (40 improved, 45 regressed), 20 unchanged.

Top method regressions (bytes):
        3477 (11.44 % of base) : 184104.dasm - <Module>:f():int (MinOpts)
        3477 (11.44 % of base) : 184100.dasm - <Module>:f():int (MinOpts)
        1294 (3.07 % of base) : 309953.dasm - lclfldsub:TestEntryPoint():int (Tier0)
        1278 (2.85 % of base) : 3218.dasm - lclfldsub:TestEntryPoint():int (MinOpts)
        1248 (6.98 % of base) : 487726.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
        1183 (2.86 % of base) : 309960.dasm - lclfldsub:TestEntryPoint():int (Tier0)
         967 (2.34 % of base) : 309929.dasm - lclfldmul:TestEntryPoint():int (Tier0)
         964 (2.21 % of base) : 3168.dasm - lclfldadd:TestEntryPoint():int (MinOpts)
         964 (2.37 % of base) : 309864.dasm - lclfldadd:TestEntryPoint():int (Tier0)
         963 (2.19 % of base) : 3196.dasm - lclfldmul:TestEntryPoint():int (MinOpts)
         938 (1.84 % of base) : 2845.dasm - Program:TestCase0011() (MinOpts)
         938 (1.88 % of base) : 309642.dasm - Program:TestCase0011() (Tier0)
         938 (1.88 % of base) : 309660.dasm - Program:TestCase0011() (Tier0)
         935 (1.87 % of base) : 309652.dasm - Program:TestCase0001() (Tier0)
         935 (1.87 % of base) : 309636.dasm - Program:TestCase0003() (Tier0)
         935 (1.87 % of base) : 309656.dasm - Program:TestCase0005() (Tier0)
         935 (1.87 % of base) : 309640.dasm - Program:TestCase0007() (Tier0)
         935 (1.87 % of base) : 309644.dasm - Program:TestCase0013() (Tier0)
         935 (1.87 % of base) : 309664.dasm - Program:TestCase0015() (Tier0)
         935 (1.87 % of base) : 309648.dasm - Program:TestCase0017() (Tier0)

Top method improvements (bytes):
        -811 (-6.83 % of base) : 217008.dasm - JitTest_huge_u8_huge_il.Test:Main():int (MinOpts)
        -810 (-6.75 % of base) : 216994.dasm - JitTest_huge_r4_huge_il.Test:Main():int (MinOpts)
        -810 (-6.80 % of base) : 222536.dasm - JitTest_hugedim_arrays_il.Test:Main():int (MinOpts)
        -808 (-6.89 % of base) : 216975.dasm - JitTest_huge_b_huge_il.Test:Main():int (MinOpts)
        -808 (-6.87 % of base) : 216983.dasm - JitTest_huge_i4_huge_il.Test:Main():int (MinOpts)
        -808 (-6.79 % of base) : 216998.dasm - JitTest_huge_r8_huge_il.Test:Main():int (MinOpts)
        -806 (-6.89 % of base) : 472700.dasm - JitTest_huge_b_huge_il.Test:Main():int (Instrumented Tier0)
        -806 (-6.87 % of base) : 472705.dasm - JitTest_huge_i4_huge_il.Test:Main():int (Instrumented Tier0)
        -806 (-6.75 % of base) : 472709.dasm - JitTest_huge_r4_huge_il.Test:Main():int (Instrumented Tier0)
        -806 (-6.78 % of base) : 472711.dasm - JitTest_huge_r8_huge_il.Test:Main():int (Instrumented Tier0)
        -806 (-6.84 % of base) : 472715.dasm - JitTest_huge_u8_huge_il.Test:Main():int (Instrumented Tier0)
        -806 (-6.79 % of base) : 474411.dasm - JitTest_hugedim_arrays_il.Test:Main():int (Instrumented Tier0)
        -785 (-6.42 % of base) : 217003.dasm - JitTest_huge_struct_huge_il.Test:Main():int (MinOpts)
        -774 (-6.34 % of base) : 472713.dasm - JitTest_huge_struct_huge_il.Test:Main():int (Instrumented Tier0)
        -718 (-5.95 % of base) : 216988.dasm - JitTest_huge_objref_huge_il.Test:Main():int (MinOpts)
        -710 (-5.88 % of base) : 472707.dasm - JitTest_huge_objref_huge_il.Test:Main():int (Instrumented Tier0)
        -537 (-4.42 % of base) : 227996.dasm - JitTest_huge_struct_Arrays_il.Test:Main():int (MinOpts)
        -511 (-1.64 % of base) : 396307.dasm - IntelHardwareIntrinsicTest._Avx2.Program+GatherMaskVector256:Test() (Instrumented Tier0)
        -284 (-2.27 % of base) : 284973.dasm - HFATest.TestCase:TestEntryPoint():int (MinOpts)
        -284 (-2.63 % of base) : 284985.dasm - HFATest.TestCase:TestEntryPoint():int (MinOpts)

Top method regressions (percentages):
          12 (44.44 % of base) : 425520.dasm - ModConst:I4_Mod_0(int):int (Tier0)
          14 (43.75 % of base) : 490962.dasm - Test_GitHub_22556:Add(Test_GitHub_22556,int):int (Tier0)
          14 (43.75 % of base) : 491095.dasm - Test_GitHub_27027:Run(Test_GitHub_27027,int):int (Tier0)
          14 (42.42 % of base) : 425534.dasm - ModConst:I8_Mod_0(long):long (Tier0)
          12 (21.43 % of base) : 442896.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (19.05 % of base) : 486953.dasm - Runtime_75832:Test(int) (Tier0)
           9 (17.65 % of base) : 480499.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
          12 (17.39 % of base) : 558315.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
          12 (17.39 % of base) : 543447.dasm - Internal.TypeSystem.MethodSignature:get_EmbeddedSignatureMismatchPermitted():ubyte:this (Tier0)
           9 (16.36 % of base) : 557113.dasm - System.Runtime.InteropServices.Marshalling.ReadOnlySpanMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          20 (15.62 % of base) : 462906.dasm - TestApp:test_2_3(double):double (Tier0)
          20 (15.62 % of base) : 462979.dasm - TestApp:test_2_3(float):float (Tier0)
          20 (15.38 % of base) : 462631.dasm - TestApp:test_2_3(double):double (Tier0)
          20 (15.38 % of base) : 495193.dasm - TestApp:test_2_3(double):double (Tier0)
          20 (15.38 % of base) : 462719.dasm - TestApp:test_2_3(float):float (Tier0)
           9 (13.64 % of base) : 437649.dasm - Program:TestRet2():ubyte (Tier0)
           9 (13.04 % of base) : 437639.dasm - Program:TestCond3() (Tier0)
          18 (12.95 % of base) : 450351.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
         104 (12.43 % of base) : 573250.dasm - Sensor:ValueMess1() (Tier0)
          23 (11.73 % of base) : 493317.dasm - ILGEN_0x64f58bd0:Method_0x1bb0(int,ulong,float,uint,uint):int (Tier0)

Top method improvements (percentages):
         -24 (-15.38 % of base) : 443459.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceOrdinaryMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
         -27 (-12.68 % of base) : 491292.dasm - Performance_2700:TestEntryPoint():int (Tier0)
         -20 (-12.58 % of base) : 338336.dasm - CompareVectorWithZero:TestEqualityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
         -20 (-12.42 % of base) : 338361.dasm - CompareVectorWithZero:TestInequalityUsingReversedInputs[int](System.Runtime.Intrinsics.Vector512`1[int]) (Tier0)
         -14 (-12.07 % of base) : 197485.dasm - (dynamicClass):ABIStress_TailCaller789(ABIStress.S2U,ABIStress.S2P,ABIStress.S4U,int,ABIStress.S2U,ABIStress.S4P,short,ABIStress.S2U,double,long):int (MinOpts)
         -54 (-11.95 % of base) : 403442.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403439.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplyAddSubtractDouble:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403510.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.AlternatingTernaryOpTest__MultiplySubtractAddDouble:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403374.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddDouble:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403371.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddDouble:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403405.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedDouble:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403425.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedSingle:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403422.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddNegatedSingle:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403391.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplyAddSingle:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403473.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractDouble:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403541.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedDouble:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403561.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedSingle:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403558.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractNegatedSingle:RunBasicScenario_UnsafeRead():this (Tier0)
         -54 (-11.95 % of base) : 403493.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractSingle:RunBasicScenario_Load():this (Tier0)
         -54 (-11.95 % of base) : 403490.dasm - JIT.HardwareIntrinsics.X86._Fma_Vector256.SimpleTernaryOpTest__MultiplySubtractSingle:RunBasicScenario_UnsafeRead():this (Tier0)


libraries.crossgen2.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 39446742 (overridden on cmd)
Total bytes of diff: 39446740 (overridden on cmd)
Total bytes of delta: -2 (-0.00 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
           2 : 148392.dasm (1.28 % of base)

Top file improvements (bytes):
          -2 : 15396.dasm (-1.79 % of base)
          -2 : 15401.dasm (-1.79 % of base)

3 total files with Code Size differences (2 improved, 1 regressed), 5 unchanged.

Top method regressions (bytes):
           2 (1.28 % of base) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (bytes):
          -2 (-1.79 % of base) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
          -2 (-1.79 % of base) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

Top method regressions (percentages):
           2 (1.28 % of base) : 148392.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method improvements (percentages):
          -2 (-1.79 % of base) : 15396.dasm - System.Threading.Tasks.Task:WaitAll(System.Threading.Tasks.Task[],System.TimeSpan):ubyte (MinOpts)
          -2 (-1.79 % of base) : 15401.dasm - System.Threading.Tasks.Task:WaitAny(System.Threading.Tasks.Task[],System.TimeSpan):int (MinOpts)

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


libraries.pmi.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 60117403 (overridden on cmd)
Total bytes of diff: 60117405 (overridden on cmd)
Total bytes of delta: 2 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           2 : 241273.dasm (1.28 % of base)

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

Top method regressions (bytes):
           2 (1.28 % of base) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

Top method regressions (percentages):
           2 (1.28 % of base) : 241273.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)

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


libraries_tests.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 276943385 (overridden on cmd)
Total bytes of diff: 276780275 (overridden on cmd)
Total bytes of delta: -163110 (-0.06 % of base)
    diff is an improvement.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
        3397 : 464033.dasm (1.49 % of base)
        3397 : 464888.dasm (1.44 % of base)
        1248 : 416070.dasm (6.98 % of base)
         558 : 72832.dasm (0.92 % of base)
         520 : 416654.dasm (4.14 % of base)
         504 : 248870.dasm (1.66 % of base)
         297 : 348600.dasm (3.64 % of base)
         276 : 108667.dasm (1.77 % of base)
         276 : 110075.dasm (1.77 % of base)
         276 : 110694.dasm (1.77 % of base)
         276 : 110004.dasm (1.77 % of base)
         276 : 108560.dasm (1.77 % of base)
         276 : 110432.dasm (1.77 % of base)
         222 : 460194.dasm (3.63 % of base)
         194 : 460214.dasm (3.52 % of base)
         183 : 67560.dasm (3.42 % of base)
         183 : 382154.dasm (2.74 % of base)
         183 : 349404.dasm (3.42 % of base)
         183 : 359062.dasm (2.74 % of base)
         154 : 463082.dasm (2.95 % of base)

Top file improvements (bytes):
       -4365 : 174278.dasm (-1.17 % of base)
       -1699 : 640470.dasm (-0.54 % of base)
       -1582 : 437821.dasm (-1.19 % of base)
        -908 : 458591.dasm (-0.96 % of base)
        -908 : 480100.dasm (-0.96 % of base)
        -806 : 174589.dasm (-0.66 % of base)
        -788 : 174416.dasm (-0.66 % of base)
        -788 : 174791.dasm (-0.66 % of base)
        -701 : 478740.dasm (-1.27 % of base)
        -701 : 458950.dasm (-1.27 % of base)
        -686 : 459314.dasm (-1.30 % of base)
        -686 : 479418.dasm (-1.30 % of base)
        -655 : 488580.dasm (-1.18 % of base)
        -655 : 457532.dasm (-1.18 % of base)
        -639 : 174687.dasm (-0.65 % of base)
        -592 : 485576.dasm (-1.01 % of base)
        -592 : 458897.dasm (-1.05 % of base)
        -592 : 478513.dasm (-1.05 % of base)
        -558 : 261113.dasm (-1.19 % of base)
        -541 : 635210.dasm (-0.56 % of base)

82 total files with Code Size differences (42 improved, 40 regressed), 20 unchanged.

Top method regressions (bytes):
        3397 (1.44 % of base) : 464888.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Instrumented Tier0)
        3397 (1.49 % of base) : 464033.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0)
        1248 (6.98 % of base) : 416070.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Tier0)
         558 (0.92 % of base) : 72832.dasm - LibraryImportGenerator.UnitTests.CompileFails+<CodeSnippetsToCompile>d__1:MoveNext():ubyte:this (Tier0)
         520 (4.14 % of base) : 416654.dasm - System.Xml.Xsl.Xslt.XsltLoader:.ctor():this (Instrumented Tier0)
         504 (1.66 % of base) : 248870.dasm - System.Diagnostics.Metrics.Tests.MetricsTests:<ObservableInstrumentMeasurementTest>b__7_0():this (Tier0)
         297 (3.64 % of base) : 348600.dasm - System.Net.Http.QPack.H3StaticTable:.cctor() (Tier0)
         276 (1.77 % of base) : 108667.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 110075.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 110694.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 110004.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 108560.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         276 (1.77 % of base) : 110432.dasm - Microsoft.Extensions.Configuration.Test.ConfigurationProviderTestBase+TestSection:.cctor() (Tier0)
         222 (3.63 % of base) : 460194.dasm - System.Numerics.Tests.op_rightshiftTest:RunRightShiftTests() (Instrumented Tier0)
         194 (3.52 % of base) : 460214.dasm - System.Numerics.Tests.op_leftshiftTest:RunLeftShiftTests() (Instrumented Tier0)
         183 (3.42 % of base) : 67560.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
         183 (3.42 % of base) : 349404.dasm - System.Net.Http.HPack.H2StaticTable:.cctor() (Tier0)
         183 (2.74 % of base) : 382154.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)
         183 (2.74 % of base) : 359062.dasm - System.Net.Test.Common.Http2LoopbackConnection:.cctor() (Tier0)
         154 (2.95 % of base) : 463082.dasm - System.Numerics.Tests.logTest:RunLogTests() (Instrumented Tier0)

Top method improvements (bytes):
       -4365 (-1.17 % of base) : 174278.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<Compare_Primitives_TestData>d__139:MoveNext():ubyte:this (Tier0)
       -1699 (-0.54 % of base) : 640470.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
       -1582 (-1.19 % of base) : 437821.dasm - System.Reflection.Emit.Tests.OpCodesTests+<TestData>d__0:MoveNext():ubyte:this (Tier0)
        -908 (-0.96 % of base) : 458591.dasm - System.Tests.UriCreateStringTests+<Scheme_Authority_TestData>d__4:MoveNext():ubyte:this (Tier0)
        -908 (-0.96 % of base) : 480100.dasm - System.Tests.UriCreateStringTests+<Scheme_Authority_TestData>d__4:MoveNext():ubyte:this (Tier0)
        -806 (-0.66 % of base) : 174589.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<OrObject_TestData>d__90:MoveNext():ubyte:this (Tier0)
        -788 (-0.66 % of base) : 174416.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<AndObject_TestData>d__13:MoveNext():ubyte:this (Tier0)
        -788 (-0.66 % of base) : 174791.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<XorObject_TestData>d__116:MoveNext():ubyte:this (Tier0)
        -701 (-1.27 % of base) : 478740.dasm - System.Tests.ArrayTests+<IndexOf_SZArray_TestData>d__119:MoveNext():ubyte:this (Tier0)
        -701 (-1.27 % of base) : 458950.dasm - System.Tests.ArrayTests+<IndexOf_SZArray_TestData>d__119:MoveNext():ubyte:this (Tier0)
        -686 (-1.30 % of base) : 459314.dasm - System.Tests.ArrayTests+<LastIndexOf_SZArray_TestData>d__128:MoveNext():ubyte:this (Tier0)
        -686 (-1.30 % of base) : 479418.dasm - System.Tests.ArrayTests+<LastIndexOf_SZArray_TestData>d__128:MoveNext():ubyte:this (Tier0)
        -655 (-1.18 % of base) : 457532.dasm - System.Tests.StringTests+<Compare_TestData>d__128:MoveNext():ubyte:this (Tier0)
        -655 (-1.18 % of base) : 488580.dasm - System.Tests.StringTests+<Compare_TestData>d__27:MoveNext():ubyte:this (Tier0)
        -639 (-0.65 % of base) : 174687.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<ModObject_TestData>d__67:MoveNext():ubyte:this (Tier0)
        -592 (-1.01 % of base) : 485576.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Instrumented Tier0)
        -592 (-1.05 % of base) : 458897.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Tier0)
        -592 (-1.05 % of base) : 478513.dasm - System.Tests.ArrayTests+<Sort_SZArray_TestData>d__159:MoveNext():ubyte:this (Tier0)
        -558 (-1.19 % of base) : 261113.dasm - System.Drawing.Primitives.Tests.ColorTests:.cctor() (Tier0)
        -541 (-0.56 % of base) : 635210.dasm - System.Text.RegularExpressions.Tests.RegexRustTests+<MatchStartAndEndPositions_MemberData_Cases>d__1:MoveNext():ubyte:this (Instrumented Tier0)

Top method regressions (percentages):
          12 (21.43 % of base) : 141609.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 31307.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Instrumented Tier0)
          12 (21.43 % of base) : 134095.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (21.43 % of base) : 146943.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (21.43 % of base) : 11412.dasm - Microsoft.CodeAnalysis.CachedUseSiteInfo`1[System.__Canon]:get_IsInitialized():ubyte:this (Tier0)
          12 (20.34 % of base) : 648775.dasm - System.Threading.RateLimiting.DefaultPartitionedRateLimiter`2[System.__Canon,int]:.cctor() (Tier0)
          15 (20.00 % of base) : 566000.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Instrumented Tier0)
          15 (20.00 % of base) : 201723.dasm - System.Collections.Queue:GetElement(int):System.Object:this (Tier0)
           9 (19.15 % of base) : 185942.dasm - System.Collections.Concurrent.Partitioner+DynamicPartitionEnumerator_Abstract`2[int,System.__Canon]:.cctor() (Tier0)
          12 (18.46 % of base) : 73656.dasm - Analyzer.Utilities.SyntaxTreeCategorizedAnalyzerConfigOptions:get_IsEmpty():ubyte:this (Tier0)
           9 (17.65 % of base) : 12152.dasm - System.Collections.Concurrent.ConcurrentDictionaryTypeProps`1[System.Collections.Immutable.ImmutableArray`1[System.__Canon]]:.cctor() (Tier0)
          12 (17.39 % of base) : 648685.dasm - System.Threading.RateLimiting.TimerAwaitable:get_IsCompleted():ubyte:this (Tier0)
           9 (16.36 % of base) : 2858.dasm - System.Runtime.InteropServices.Marshalling.ArrayMarshaller`2+ManagedToUnmanagedIn[System.__Canon,long]:.cctor() (Tier0)
          19 (16.10 % of base) : 145570.dasm - Microsoft.CodeAnalysis.Collections.Internal.SegmentedArrayHelper+ValueTypeSegmentHelper`1[Microsoft.CodeAnalysis.Collections.SegmentedDictionary`2+Entry[System.__Canon,Roslyn.Utilities.VoidResult]]:.cctor() (Tier0)
          18 (12.95 % of base) : 405780.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Instrumented Tier0)
          18 (12.95 % of base) : 179715.dasm - System.Xml.Schema.XsdDateTime:Write2Digits(System.Span`1[ushort],int,int) (Tier0)
          10 (10.42 % of base) : 17037.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.TypeWithAnnotations+LazySubstitutedType:GetResolvedAnnotation(ubyte):ubyte:this (Tier0)
          10 (9.80 % of base) : 661871.dasm - System.Threading.Tests.BarrierTests+<>c__DisplayClass18_0:<RunBarrierTest7a>b__1(System.Object):this (Tier0)
          11 (9.73 % of base) : 127390.dasm - Microsoft.Extensions.Hosting.Internal.HostTests+<>c__DisplayClass51_0:<RegisterCallbacksThatThrow>b__0(System.Object):this (Tier0)
          11 (9.40 % of base) : 9616.dasm - Microsoft.CodeAnalysis.Collections.SegmentedArray`1[int]:get_Item(int):byref:this (Tier0)

Top method improvements (percentages):
         -27 (-15.98 % of base) : 38374.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Instrumented Tier0)
         -27 (-15.98 % of base) : 13315.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags (Tier0)
         -27 (-15.98 % of base) : 38375.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
         -27 (-15.98 % of base) : 13316.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol+Flags:.ctor(int,ubyte,uint,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier0)
         -25 (-12.69 % of base) : 111387.dasm - DryIoc.Setup+WrapperSetup:.ctor(int,ubyte,System.Func`2[System.Type,System.Type],System.Func`2[DryIoc.Request,ubyte],ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,int):this (Tier0)
         -26 (-12.38 % of base) : 238311.dasm - System.Data.SqlTypes.SqlGuid:.ctor(int,short,short,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte,ubyte):this (Tier0)
         -58 (-12.18 % of base) : 601377.dasm - System.Text.RegularExpressions.Match:BalanceMatch(int):this (Tier0)
         -18 (-12.00 % of base) : 232516.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Instrumented Tier0)
         -18 (-12.00 % of base) : 232324.dasm - System.IO.KeyParser:<TryParseTerminalInputSequence>g__Create|7_7(ushort,int,int):System.ConsoleKeyInfo (Tier0)
        -117 (-11.45 % of base) : 548985.dasm - System.Text.Json.JsonWriterHelper:EscapeNextBytes(ubyte,System.Span`1[ubyte],byref) (Tier0)
        -117 (-10.68 % of base) : 130108.dasm - System.Text.Json.JsonWriterHelper:EscapeNextChars(ushort,System.Span`1[ushort],byref) (Tier0)
         -13 (-10.57 % of base) : 142726.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Instrumented Tier0)
         -13 (-10.57 % of base) : 135077.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Tier0)
         -13 (-10.57 % of base) : 146712.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SourceMemberMethodSymbol:MakeFlags(int,uint,ubyte,ubyte,ubyte,ubyte):this (Tier0)
         -58 (-10.41 % of base) : 485841.dasm - System.Tests.GuidTests:Ctor_Int_Short_Short_ByteArray(int,short,short,ubyte[],System.Guid) (Tier0)
         -28 (-10.33 % of base) : 78295.dasm - System.Security.Cryptography.X509Certificates.CertificatePal:GetIssuerOrSubject(ubyte,ubyte):System.String:this (Tier0)
         -12 (-10.26 % of base) : 385473.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (Tier0)
         -12 (-10.26 % of base) : 393259.dasm - System.Numerics.Tensors.TensorPrimitives+DegreesToRadiansOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (Tier0)
         -12 (-10.26 % of base) : 387618.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[double]:Invoke(System.Runtime.Intrinsics.Vector256`1[double]):System.Runtime.Intrinsics.Vector256`1[double] (Instrumented Tier0)
         -12 (-10.26 % of base) : 394030.dasm - System.Numerics.Tensors.TensorPrimitives+RadiansToDegreesOperator`1[float]:Invoke(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[float] (Instrumented Tier0)


librariestestsnotieredcompilation.run.windows.x64.Release.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 135762558 (overridden on cmd)
Total bytes of diff: 135749920 (overridden on cmd)
Total bytes of delta: -12638 (-0.01 % of base)
    diff is an improvement.
    relative diff is an improvement.

Detail diffs



Top file regressions (bytes):
        3397 : 204673.dasm (1.49 % of base)
          44 : 13054.dasm (1.21 % of base)
           8 : 306480.dasm (0.18 % of base)
           6 : 294075.dasm (0.09 % of base)
           5 : 2254.dasm (0.13 % of base)
           5 : 292821.dasm (0.52 % of base)
           5 : 292826.dasm (0.52 % of base)
           5 : 294129.dasm (0.47 % of base)
           4 : 303493.dasm (0.31 % of base)
           4 : 303496.dasm (0.30 % of base)
           4 : 303499.dasm (0.30 % of base)
           4 : 306428.dasm (0.59 % of base)
           4 : 12197.dasm (0.24 % of base)
           3 : 306213.dasm (0.67 % of base)
           3 : 306352.dasm (0.68 % of base)
           3 : 306452.dasm (0.67 % of base)
           3 : 306493.dasm (0.67 % of base)
           3 : 306497.dasm (0.67 % of base)
           3 : 64852.dasm (0.11 % of base)
           3 : 306188.dasm (0.67 % of base)

Top file improvements (bytes):
       -4365 : 61294.dasm (-1.17 % of base)
       -1699 : 296928.dasm (-0.52 % of base)
        -454 : 292406.dasm (-0.31 % of base)
        -329 : 63865.dasm (-1.12 % of base)
        -328 : 291555.dasm (-0.27 % of base)
        -203 : 284962.dasm (-2.18 % of base)
        -203 : 284971.dasm (-2.17 % of base)
        -114 : 296925.dasm (-0.06 % of base)
         -38 : 64469.dasm (-4.69 % of base)
         -28 : 63939.dasm (-1.89 % of base)
         -23 : 12921.dasm (-0.22 % of base)
         -22 : 284959.dasm (-1.91 % of base)
         -22 : 284956.dasm (-1.99 % of base)
         -18 : 13229.dasm (-0.11 % of base)
         -15 : 13055.dasm (-1.10 % of base)
         -15 : 4585.dasm (-0.46 % of base)
         -15 : 3624.dasm (-0.27 % of base)
         -15 : 13212.dasm (-0.11 % of base)
         -14 : 3497.dasm (-0.07 % of base)
         -14 : 2556.dasm (-0.50 % of base)

69 total files with Code Size differences (37 improved, 32 regressed), 20 unchanged.

Top method regressions (bytes):
        3397 (1.49 % of base) : 204673.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
          44 (1.21 % of base) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
           8 (0.18 % of base) : 306480.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get72_67+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           6 (0.09 % of base) : 294075.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get169_25+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           5 (0.13 % of base) : 2254.dasm - Microsoft.CodeAnalysis.Testing.SolutionState:WithProcessedMarkup(int,Microsoft.CodeAnalysis.DiagnosticDescriptor,System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.DiagnosticDescriptor],System.Collections.Immutable.ImmutableArray`1[System.String],System.String):Microsoft.CodeAnalysis.Testing.SolutionState:this (MinOpts)
           5 (0.47 % of base) : 294129.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get235_42+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           5 (0.52 % of base) : 292821.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get530_386+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           5 (0.52 % of base) : 292826.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get531_387+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           4 (0.24 % of base) : 12197.dasm - Microsoft.CodeAnalysis.Testing.DiagnosticResult:ToString():System.String:this (MinOpts)
           4 (0.59 % of base) : 306428.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get60_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           4 (0.31 % of base) : 303493.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get921_533+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           4 (0.30 % of base) : 303496.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get922_534+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           4 (0.30 % of base) : 303499.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get923_535+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           3 (0.11 % of base) : 64852.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read105_TypeWithFieldsOrdered(ubyte,ubyte):SerializationTypes.TypeWithFieldsOrdered:this (MinOpts)
           3 (0.08 % of base) : 64684.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReader1:Read32_DefaultValuesSetToNaN(ubyte,ubyte):DefaultValuesSetToNaN:this (MinOpts)
           3 (0.30 % of base) : 306444.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get64_59+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           3 (0.68 % of base) : 306352.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_41569EDFFAF99217ED44AE8131C3ECED092758A14BF36968256C256BDC0CF2C1(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.73 % of base) : 292969.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_44AB8176580C296BA200A14D8FDB0F04713003D5378F8A2ADB81DA50F127E332(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.73 % of base) : 292965.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_510286B569F1420FDED9B941BD0A7390FA7316DE4E721E88EA108AB0AA778285(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306188.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6C2382645B03C0266EB5677959E9219427EE8EA79AC0E1BCFCB694541C1E2E1B(System.ReadOnlySpan`1[ushort]):int (MinOpts)

Top method improvements (bytes):
       -4365 (-1.17 % of base) : 61294.dasm - Microsoft.VisualBasic.CompilerServices.Tests.OperatorsTests+<Compare_Primitives_TestData>d__139:MoveNext():ubyte:this (Tier0-MinOpts)
       -1699 (-0.52 % of base) : 296928.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2217_921+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -454 (-0.31 % of base) : 292406.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2764_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -329 (-1.12 % of base) : 63865.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write1_Object(System.String,System.String,System.Object,ubyte,ubyte):this (MinOpts)
        -328 (-0.27 % of base) : 291555.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex2756_TryMatchAtCurrentPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[ushort]):ubyte (Tier0-MinOpts)
        -203 (-2.18 % of base) : 284962.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -203 (-2.17 % of base) : 284971.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -114 (-0.06 % of base) : 296925.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get2209_920+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -38 (-4.69 % of base) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)
         -28 (-1.89 % of base) : 63939.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write45_TypeWithGetSetArrayMembers(System.String,System.String,SerializationTypes.TypeWithGetSetArrayMembers,ubyte,ubyte):this (MinOpts)
         -23 (-0.22 % of base) : 12921.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:VerifyDiagnosticResults(System.Collections.Generic.IEnumerable`1[System.ValueTuple`2[Microsoft.CodeAnalysis.Project,Microsoft.CodeAnalysis.Diagnostic]],System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],Microsoft.CodeAnalysis.Testing.DiagnosticResult[],Microsoft.CodeAnalysis.Testing.IVerifier):this (MinOpts)
         -22 (-1.91 % of base) : 284959.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -22 (-1.99 % of base) : 284956.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -18 (-0.11 % of base) : 13229.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1+<FixAllAnalyerDiagnosticsInScopeAsync>d__54[System.__Canon]:MoveNext():this (MinOpts)
         -15 (-1.10 % of base) : 13055.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:<FormatDiagnostics>g__AppendLocation|77_0(Microsoft.CodeAnalysis.Testing.DiagnosticLocation,byref) (MinOpts)
         -15 (-0.46 % of base) : 4585.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<ApplySourceGeneratorsAsync>d__86[System.__Canon]:MoveNext():this (MinOpts)
         -15 (-0.27 % of base) : 3624.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<VerifySourceGeneratorAsync>d__68[System.__Canon]:MoveNext():this (MinOpts)
         -15 (-0.11 % of base) : 13212.dasm - Microsoft.CodeAnalysis.Testing.CodeFixTest`1+<VerifyProjectAsync>d__49[System.__Canon]:MoveNext():this (MinOpts)
         -14 (-0.50 % of base) : 2556.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1+<CreateSolutionAsync>d__97[System.__Canon]:MoveNext():this (MinOpts)
         -14 (-0.07 % of base) : 3497.dasm - Microsoft.CodeAnalysis.Testing.ReferenceAssemblies+<ResolveCoreAsync>d__50:MoveNext():this (MinOpts)

Top method regressions (percentages):
        3397 (1.49 % of base) : 204673.dasm - System.Runtime.Serialization.Formatters.Tests.BinaryFormatterTests+<SerializableObjects>d__3:MoveNext():ubyte:this (Tier0-MinOpts)
           2 (1.28 % of base) : 230240.dasm - System.Security.Cryptography.CryptographicOperations:FixedTimeEquals(System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte]):ubyte (MinOpts)
          44 (1.21 % of base) : 13054.dasm - Microsoft.CodeAnalysis.Testing.AnalyzerTest`1[System.__Canon]:FormatDiagnostics(System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.Diagnostics.DiagnosticAnalyzer],System.String,Microsoft.CodeAnalysis.Testing.DiagnosticResult[]):System.String (MinOpts)
           2 (0.85 % of base) : 178903.dasm - System.Xml.Xsl.CompiledQuery.Query:Init(System.Xml.Xsl.Runtime.XmlQueryRuntime) (MinOpts)
           3 (0.73 % of base) : 292969.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_44AB8176580C296BA200A14D8FDB0F04713003D5378F8A2ADB81DA50F127E332(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.73 % of base) : 292965.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_510286B569F1420FDED9B941BD0A7390FA7316DE4E721E88EA108AB0AA778285(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.73 % of base) : 292984.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6E677458999733E5407B5E2317F2B97D87DCAC6EB7CF241D33C03715C60C9875(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.68 % of base) : 306352.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_41569EDFFAF99217ED44AE8131C3ECED092758A14BF36968256C256BDC0CF2C1(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306188.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_6C2382645B03C0266EB5677959E9219427EE8EA79AC0E1BCFCB694541C1E2E1B(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306452.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_79A16370126EBEFD87DBE2244764B0E38D2C7754F3581DAD1A1BB687A87C1CB6(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306497.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_7A8B1C80CDE99D1CBB08D0F471A0F6791ABC9388B5900F1C6B8FA2DEF069760A(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306509.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_840A3E17C0E58C8CEECB87C05AF4EF76C9DB97ACC0B60AD5080F0A2AC35F27E6(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306493.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_9A03B6493A89E517F561393B12E56768B82CCD82506C0BA7304B78E8CAA6B91D(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 306213.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_9BE2A45CE17C9DF3CA7BF217C7D3B3773708E111D804991F112248FA5E0A7CAD(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           3 (0.67 % of base) : 295918.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Utilities:IndexOfNonAsciiOrAny_FD50A1F4B278307219A272B753E627D736BC6ED5306B6F44F648758A381A6773(System.ReadOnlySpan`1[ushort]):int (MinOpts)
           2 (0.59 % of base) : 303231.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get787_443+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           2 (0.59 % of base) : 303516.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get928_540+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           4 (0.59 % of base) : 306428.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get60_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           2 (0.58 % of base) : 284890.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
           5 (0.52 % of base) : 292821.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get530_386+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)

Top method improvements (percentages):
         -38 (-4.69 % of base) : 64469.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write105_Item(System.String,System.String,SerializationTypes.NamespaceTypeNameClashContainer,ubyte,ubyte):this (MinOpts)
          -5 (-2.35 % of base) : 64834.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write147_SimpleType(System.Object):this (MinOpts)
          -7 (-2.33 % of base) : 284014.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get57_55+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.31 % of base) : 284945.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -8 (-2.25 % of base) : 294510.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get473_159+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -8 (-2.19 % of base) : 302280.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get195_130+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -8 (-2.19 % of base) : 295030.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get797_322+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -203 (-2.18 % of base) : 284962.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
        -203 (-2.17 % of base) : 284971.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryMatchAtCurrentPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.10 % of base) : 299476.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get155_132+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.10 % of base) : 294332.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get360_104+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.10 % of base) : 302907.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get613_334+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -7 (-2.10 % of base) : 293340.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get768_540+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
         -11 (-2.09 % of base) : 284961.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -3 (-2.08 % of base) : 16303.dasm - Microsoft.CodeAnalysis.Testing.ProjectCollection:get_Item(System.String):Microsoft.CodeAnalysis.Testing.ProjectState:this (MinOpts)
          -4 (-2.01 % of base) : 64780.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write169_Item(System.Object):this (MinOpts)
          -4 (-2.01 % of base) : 63862.dasm - Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationWriter1:Write183_AttributeTesting(System.Object):this (MinOpts)
          -6 (-2.00 % of base) : 285009.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -6 (-2.00 % of base) : 285413.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)
          -6 (-2.00 % of base) : 285429.dasm - System.Text.RegularExpressions.Generated.<RegexGenerator_g>F74B1AE921BCEFE4BA601AA541C7A23B1CA9711EA81E8FE504B5B6446748E035A__Get0_0+RunnerFactory+Runner:TryFindNextPossibleStartingPosition(System.ReadOnlySpan`1[ushort]):ubyte:this (MinOpts)


realworld.run.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 13729153 (overridden on cmd)
Total bytes of diff: 13729159 (overridden on cmd)
Total bytes of delta: 6 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           6 : 4521.dasm (0.00 % of base)

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

Top method regressions (bytes):
           6 (0.00 % of base) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

Top method regressions (percentages):
           6 (0.00 % of base) : 4521.dasm - FSharp.Compiler.LexFilter+LexFilterImpl:hwTokenFetch(ubyte):FSharp.Compiler.Parser+token:this (Tier0-MinOpts)

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


smoke_tests.nativeaot.windows.x64.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 5087013 (overridden on cmd)
Total bytes of diff: 5087013 (overridden on cmd)
Total bytes of delta: 0 (0.00 % of base)

Detail diffs



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

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