Diffs are based on 2,542,063 contexts (973,272 MinOpts, 1,568,791 FullOpts).
Overall (+9,918 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 18,909,649 | +119 | +0.11% |
| benchmarks.run.windows.x64.checked.mch | 13,336,843 | +127 | -0.04% |
| benchmarks.run_pgo.windows.x64.checked.mch | 29,574,934 | +1,155 | +0.08% |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 13,529,071 | +131 | -0.04% |
| coreclr_tests.run.windows.x64.checked.mch | 294,975,944 | -811 | +0.05% |
| libraries.crossgen2.windows.x64.checked.mch | 41,264,262 | +175 | +0.42% |
| libraries.pmi.windows.x64.checked.mch | 48,433,660 | +52 | +0.14% |
| libraries_tests.run.windows.x64.Release.mch | 343,438,187 | +5,217 | +0.06% |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 153,702,737 | +2,577 | -0.17% |
| realworld.run.windows.x64.checked.mch | 11,585,274 | +1,183 | +0.06% |
| smoke_tests.nativeaot.windows.x64.checked.mch | 5,503,934 | -7 | -0.24% |
FullOpts (+9,918 bytes)
| Collection | Base size (bytes) | Diff size (bytes) | PerfScore in Diffs |
|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 13,810,184 | +119 | +0.11% |
| benchmarks.run.windows.x64.checked.mch | 13,213,568 | +127 | -0.04% |
| benchmarks.run_pgo.windows.x64.checked.mch | 12,016,469 | +1,155 | +0.08% |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 13,405,796 | +131 | -0.04% |
| coreclr_tests.run.windows.x64.checked.mch | 109,309,109 | -811 | +0.05% |
| libraries.crossgen2.windows.x64.checked.mch | 41,262,472 | +175 | +0.42% |
| libraries.pmi.windows.x64.checked.mch | 48,321,223 | +52 | +0.14% |
| libraries_tests.run.windows.x64.Release.mch | 146,743,830 | +5,217 | +0.06% |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 142,382,109 | +2,577 | -0.17% |
| realworld.run.windows.x64.checked.mch | 11,357,738 | +1,183 | +0.06% |
| smoke_tests.nativeaot.windows.x64.checked.mch | 5,502,251 | -7 | -0.24% |
Example diffs
aspnet2.run.windows.x64.checked.mch
-22 (-5.63%) : 48370.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
@@ -90,9 +90,8 @@ G_M36857_IG06: ; bbWeight=0.42, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rbx, 8
;; size=25 bbWeight=0.42 PerfScore 2.87
G_M36857_IG07: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -16
jle SHORT G_M36857_IG12
vxorps ymm0, ymm0, ymm0
@@ -100,7 +99,7 @@ G_M36857_IG07: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
vpmovmskb edx, ymm0
test edx, edx
jne SHORT G_M36857_IG09
- ;; size=35 bbWeight=1.00 PerfScore 9.58
+ ;; size=31 bbWeight=1.00 PerfScore 9.33
G_M36857_IG08: ; bbWeight=4.19, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
add rbx, 16
add rax, -16
@@ -125,17 +124,16 @@ G_M36857_IG10: ; bbWeight=1.00, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
pop rbx
ret
;; size=9 bbWeight=1.00 PerfScore 2.75
-G_M36857_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M36857_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
cmp word ptr [rcx+2*rbx], 0
- je G_M36857_IG20
+ je SHORT G_M36857_IG20
inc rbx
dec rax
jmp G_M36857_IG05
- ;; size=22 bbWeight=0 PerfScore 0.00
+ ;; size=18 bbWeight=0 PerfScore 0.00
G_M36857_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -8
jle SHORT G_M36857_IG13
vxorps xmm0, xmm0, xmm0
@@ -144,15 +142,14 @@ G_M36857_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
test eax, eax
jne SHORT G_M36857_IG15
add rbx, 8
- ;; size=39 bbWeight=0 PerfScore 0.00
+ ;; size=35 bbWeight=0 PerfScore 0.00
G_M36857_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rbx, 0xD1FFAB1E
jge SHORT G_M36857_IG16
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
jmp G_M36857_IG04
- ;; size=26 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M36857_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
tzcnt eax, eax
shr eax, 1
@@ -172,14 +169,14 @@ G_M36857_IG16: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; gcr arg pop 0
int3
;; size=7 bbWeight=0 PerfScore 0.00
-G_M36857_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M36857_IG17: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea eax, [rbx+0x03]
- jmp G_M36857_IG10
- ;; size=8 bbWeight=0 PerfScore 0.00
-G_M36857_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp SHORT G_M36857_IG10
+ ;; size=5 bbWeight=0 PerfScore 0.00
+G_M36857_IG18: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea eax, [rbx+0x02]
- jmp G_M36857_IG10
- ;; size=8 bbWeight=0 PerfScore 0.00
+ jmp SHORT G_M36857_IG10
+ ;; size=5 bbWeight=0 PerfScore 0.00
G_M36857_IG19: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea eax, [rbx+0x01]
jmp G_M36857_IG10
@@ -189,7 +186,7 @@ G_M36857_IG20: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jmp G_M36857_IG10
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 391, prolog size 5, PerfScore 85.61, instruction count 110, allocated bytes for code 391 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
+; Total bytes of code 369, prolog size 5, PerfScore 85.36, instruction count 107, allocated bytes for code 369 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
; ============================================================
Unwind Info:-4 (-4.04%) : 1390.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
@@ -29,9 +29,8 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, edx
sub eax, dword ptr [rcx]
- mov r8d, eax
- neg r8d
- add r8d, 500
+ mov r8d, 500
+ sub r8d, eax
mov r10d, 1
cmp eax, 500
mov eax, r10d
@@ -39,7 +38,7 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
mov r8d, dword ptr [rcx+0x08]
test r8d, r8d
je SHORT G_M55382_IG07
- ;; size=44 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M55382_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
sub edx, dword ptr [rcx+0x04]
cmp edx, r8d
@@ -72,7 +71,7 @@ G_M55382_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 99, prolog size 0, PerfScore 15.88, instruction count 31, allocated bytes for code 99 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
+; Total bytes of code 95, prolog size 0, PerfScore 15.62, instruction count 30, allocated bytes for code 95 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
; ============================================================
Unwind Info:-3 (-2.54%) : 22620.dasm - Microsoft.IdentityModel.Tokens.DateTimeUtil:Add(System.DateTime,System.TimeSpan):System.DateTime (FullOpts)
@@ -41,7 +41,7 @@
;* V30 tmp28 [V30 ] ( 0, 0 ) long -> zero-ref single-def "field V09._ticks (fldOffset=0x0)" P-INDEP
;* V31 tmp29 [V31 ] ( 0, 0 ) long -> zero-ref single-def "field V10._dateData (fldOffset=0x0)" P-INDEP
;* V32 tmp30 [V32 ] ( 0, 0 ) long -> zero-ref single-def "field V11._dateData (fldOffset=0x0)" P-INDEP
-; V33 tmp31 [V33,T04] ( 2, 1 ) long -> rax single-def "field V13._ticks (fldOffset=0x0)" P-INDEP
+; V33 tmp31 [V33,T04] ( 2, 1 ) long -> r8 single-def "field V13._ticks (fldOffset=0x0)" P-INDEP
;* V34 tmp32 [V34 ] ( 0, 0 ) long -> zero-ref single-def "field V16._dateData (fldOffset=0x0)" P-INDEP
;* V35 tmp33 [V35 ] ( 0, 0 ) long -> zero-ref single-def "field V17._dateData (fldOffset=0x0)" P-INDEP
; V36 tmp34 [V36,T05] ( 2, 1 ) long -> rax single-def "field V19._ticks (fldOffset=0x0)" P-INDEP
@@ -59,12 +59,11 @@ G_M25930_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
jle SHORT G_M25930_IG04
mov rax, 0xD1FFAB1E
and rax, rcx
- neg rax
mov r8, 0xD1FFAB1E
- add rax, r8
- cmp rax, rdx
+ sub r8, rax
+ cmp r8, rdx
jle SHORT G_M25930_IG08
- ;; size=39 bbWeight=0.50 PerfScore 1.88
+ ;; size=36 bbWeight=0.50 PerfScore 1.75
G_M25930_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test rdx, rdx
jge SHORT G_M25930_IG05
@@ -102,7 +101,7 @@ G_M25930_IG11: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 118, prolog size 0, PerfScore 10.12, instruction count 31, allocated bytes for code 118 (MethodHash=10a29ab5) for method Microsoft.IdentityModel.Tokens.DateTimeUtil:Add(System.DateTime,System.TimeSpan):System.DateTime (FullOpts)
+; Total bytes of code 115, prolog size 0, PerfScore 10.00, instruction count 30, allocated bytes for code 115 (MethodHash=10a29ab5) for method Microsoft.IdentityModel.Tokens.DateTimeUtil:Add(System.DateTime,System.TimeSpan):System.DateTime (FullOpts)
; ============================================================
Unwind Info:+7 (+6.31%) : 14966.dasm - System.SpanHelpers:g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M29489_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqb ymm0, ymm1, ymm0
vpmovmskb eax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=17 bbWeight=0.50 PerfScore 3.00
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=24 bbWeight=0.50 PerfScore 3.12
G_M29489_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M29489_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 111, prolog size 0, PerfScore 71.75, instruction count 33, allocated bytes for code 111 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
+; Total bytes of code 118, prolog size 0, PerfScore 71.88, instruction count 34, allocated bytes for code 118 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
; ============================================================
Unwind Info:+7 (+6.09%) : 1182.dasm - System.SpanHelpers:g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M16881_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqw k1, ymm1, ymm0
kmovw eax, k1
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=19 bbWeight=0.50 PerfScore 2.50
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=26 bbWeight=0.50 PerfScore 2.62
G_M16881_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M16881_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 115, prolog size 0, PerfScore 70.75, instruction count 33, allocated bytes for code 119 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 122, prolog size 0, PerfScore 70.88, instruction count 34, allocated bytes for code 126 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:+10 (+3.14%) : 24.dasm - System.SpanHelpers:Memmove(byref,byref,nuint) (FullOpts)
@@ -14,7 +14,7 @@
; V03 loc0 [V03,T04] ( 5, 2.50) byref -> rbx single-def
; V04 loc1 [V04,T05] ( 5, 2.50) byref -> rsi single-def
; V05 loc2 [V05,T03] ( 4, 12.50) long -> rax
-; V06 loc3 [V06,T06] ( 4, 2 ) long -> rax
+; V06 loc3 [V06,T06] ( 4, 2 ) long -> r10
;# V07 OutArgs [V07 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
; V08 tmp1 [V08,T07] ( 2, 2 ) long -> rax "Cast away GC"
;
@@ -41,12 +41,12 @@ G_M31183_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rd
cmp rax, r8
jae SHORT G_M31183_IG05
;; size=11 bbWeight=0.50 PerfScore 0.88
-G_M31183_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
+G_M31183_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
cmp rcx, rdx
- jne SHORT G_M31183_IG09
+ jne G_M31183_IG09
cmp byte ptr [rdx], dl
jmp G_M31183_IG17
- ;; size=12 bbWeight=0.50 PerfScore 3.12
+ ;; size=16 bbWeight=0.50 PerfScore 3.12
G_M31183_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
lea rbx, bword ptr [rdx+r8]
; byrRegs +[rbx]
@@ -92,10 +92,10 @@ G_M31183_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=004E {rcx rd
G_M31183_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=004E {rcx rdx rbx rsi}, byref, isz
; byrRegs +[rcx]
cmp r8, 64
- jbe SHORT G_M31183_IG15
+ jbe G_M31183_IG15
cmp r8, 0x800
jbe SHORT G_M31183_IG11
- ;; size=15 bbWeight=0.50 PerfScore 1.25
+ ;; size=19 bbWeight=0.50 PerfScore 1.25
G_M31183_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref
; byrRegs -[rbx rsi]
cmp byte ptr [rcx], cl
@@ -113,16 +113,16 @@ G_M31183_IG11: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
jb SHORT G_M31183_IG12
mov rax, rcx
and rax, 63
- neg rax
- add rax, 64
+ mov r10d, 64
+ sub r10, rax
vmovdqu ymm0, ymmword ptr [rdx]
vmovdqu ymmword ptr [rcx], ymm0
vmovdqu ymm0, ymmword ptr [rdx+0x20]
vmovdqu ymmword ptr [rcx+0x20], ymm0
- add rdx, rax
- add rcx, rax
- sub r8, rax
- ;; size=50 bbWeight=0.50 PerfScore 8.50
+ add rdx, r10
+ add rcx, r10
+ sub r8, r10
+ ;; size=52 bbWeight=0.50 PerfScore 8.50
G_M31183_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=004E {rcx rdx rbx rsi}, byref
mov rax, r8
shr rax, 6
@@ -167,7 +167,7 @@ G_M31183_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=6 bbWeight=0.50 PerfScore 1.50
-; Total bytes of code 318, prolog size 2, PerfScore 118.00, instruction count 93, allocated bytes for code 318 (MethodHash=a9988630) for method System.SpanHelpers:Memmove(byref,byref,nuint) (FullOpts)
+; Total bytes of code 328, prolog size 2, PerfScore 118.00, instruction count 93, allocated bytes for code 328 (MethodHash=a9988630) for method System.SpanHelpers:Memmove(byref,byref,nuint) (FullOpts)
; ============================================================
Unwind Info:benchmarks.run.windows.x64.checked.mch
-7 (-5.98%) : 2060.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -31,18 +31,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -77,7 +75,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:-4 (-4.04%) : 2898.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
@@ -29,9 +29,8 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, edx
sub eax, dword ptr [rcx]
- mov r8d, eax
- neg r8d
- add r8d, 500
+ mov r8d, 500
+ sub r8d, eax
mov r10d, 1
cmp eax, 500
mov eax, r10d
@@ -39,7 +38,7 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
mov r8d, dword ptr [rcx+0x08]
test r8d, r8d
je SHORT G_M55382_IG07
- ;; size=44 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M55382_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
sub edx, dword ptr [rcx+0x04]
cmp edx, r8d
@@ -72,7 +71,7 @@ G_M55382_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 99, prolog size 0, PerfScore 15.88, instruction count 31, allocated bytes for code 99 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
+; Total bytes of code 95, prolog size 0, PerfScore 15.62, instruction count 30, allocated bytes for code 95 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
; ============================================================
Unwind Info:-12 (-3.27%) : 22.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
@@ -96,12 +96,11 @@ G_M36857_IG09: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add rbx, 8
;; size=4 bbWeight=2 PerfScore 0.50
G_M36857_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -16
jle SHORT G_M36857_IG15
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps ymm0, ymm0, ymm0
vpcmpeqw ymm0, ymm0, ymmword ptr [rcx+2*rbx]
@@ -134,12 +133,11 @@ G_M36857_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=10 bbWeight=1 PerfScore 3.25
G_M36857_IG15: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -8
jle SHORT G_M36857_IG19
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG16: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vpcmpeqw xmm0, xmm0, xmmword ptr [rcx+2*rbx]
@@ -159,10 +157,9 @@ G_M36857_IG18: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M36857_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rbx, 0xD1FFAB1E
jge SHORT G_M36857_IG30
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
- ;; size=21 bbWeight=4 PerfScore 8.00
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
+ ;; size=17 bbWeight=4 PerfScore 7.00
G_M36857_IG20: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmp rax, 4
jl G_M36857_IG04
@@ -210,7 +207,7 @@ G_M36857_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 367, prolog size 6, PerfScore 419.13, instruction count 112, allocated bytes for code 367 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
+; Total bytes of code 355, prolog size 6, PerfScore 416.13, instruction count 109, allocated bytes for code 355 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
; ============================================================
Unwind Info:+21 (+11.80%) : 12805.dasm - V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
@@ -28,7 +28,7 @@ G_M64469_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
cmp dword ptr [rcx+0x10], 0
jle G_M64469_IG05
;; size=14 bbWeight=1 PerfScore 6.00
-G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
cmp dword ptr [rax+0x10], 0
je G_M64469_IG07
@@ -38,36 +38,35 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
test al, 1
- je SHORT G_M64469_IG05
+ je G_M64469_IG05
mov ecx, eax
and ecx, 3
mov edx, eax
and edx, 15
imul edx, ecx
- neg edx
- add edx, 2
- imul ecx, edx
+ mov r8d, 2
+ sub r8d, edx
+ imul ecx, r8d
and ecx, 15
movzx rdx, al
imul edx, ecx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dl
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8b
mov edx, eax
imul edx, ecx
movzx rdx, dx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dx
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8w
imul eax, ecx
mov r8d, dword ptr [(reloc)] ; static handle
cdq
idiv edx:eax, r8d
- mov eax, edx
- neg eax
- add eax, 2
+ mov eax, 2
+ sub eax, edx
imul eax, ecx
cdq
idiv edx:eax, r8d
@@ -78,7 +77,7 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
neg edx
test ecx, ecx
cmovle eax, edx
- ;; size=135 bbWeight=0.50 PerfScore 44.38
+ ;; size=156 bbWeight=0.50 PerfScore 44.25
G_M64469_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret
@@ -101,7 +100,7 @@ G_M64469_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 178, prolog size 4, PerfScore 52.00, instruction count 60, allocated bytes for code 178 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
+; Total bytes of code 199, prolog size 4, PerfScore 51.88, instruction count 59, allocated bytes for code 199 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
; ============================================================
Unwind Info:+7 (+6.31%) : 9319.dasm - System.SpanHelpers:g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M29489_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqb ymm0, ymm1, ymm0
vpmovmskb eax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=17 bbWeight=0.50 PerfScore 3.00
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=24 bbWeight=0.50 PerfScore 3.12
G_M29489_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M29489_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 111, prolog size 0, PerfScore 71.75, instruction count 33, allocated bytes for code 111 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
+; Total bytes of code 118, prolog size 0, PerfScore 71.88, instruction count 34, allocated bytes for code 118 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
; ============================================================
Unwind Info:+7 (+6.09%) : 4758.dasm - System.SpanHelpers:g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M16881_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqw k1, ymm1, ymm0
kmovw eax, k1
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=19 bbWeight=0.50 PerfScore 2.50
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=26 bbWeight=0.50 PerfScore 2.62
G_M16881_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M16881_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 115, prolog size 0, PerfScore 70.75, instruction count 33, allocated bytes for code 119 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 122, prolog size 0, PerfScore 70.88, instruction count 34, allocated bytes for code 126 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:benchmarks.run_pgo.windows.x64.checked.mch
-4 (-4.00%) : 82339.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (Tier1)
@@ -29,9 +29,8 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, edx
sub eax, dword ptr [rcx]
- mov r8d, eax
- neg r8d
- add r8d, 500
+ mov r8d, 500
+ sub r8d, eax
mov r10d, 1
cmp eax, 500
mov eax, r10d
@@ -39,7 +38,7 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
cmp dword ptr [rcx+0x08], 0
jne SHORT G_M55382_IG04
mov word ptr [rcx+0x0C], 1
- ;; size=47 bbWeight=1 PerfScore 10.00
+ ;; size=43 bbWeight=1 PerfScore 9.75
G_M55382_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
@@ -70,7 +69,7 @@ G_M55382_IG07: ; bbWeight=0, epilog, nogc, extend
ret
;; size=1 bbWeight=0 PerfScore 0.00
-; Total bytes of code 100, prolog size 0, PerfScore 11.00, instruction count 31, allocated bytes for code 100 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (Tier1)
+; Total bytes of code 96, prolog size 0, PerfScore 10.75, instruction count 30, allocated bytes for code 96 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (Tier1)
; ============================================================
Unwind Info:-4 (-2.23%) : 47018.dasm - System.IO.MemoryStream:set_Position(long):this (Tier1)
@@ -34,15 +34,14 @@ G_M18541_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
cmp byte ptr [rcx+0x2B], 0
je SHORT G_M18541_IG05
mov eax, dword ptr [rcx+0x18]
- mov r8d, eax
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov r8d, 0xD1FFAB1E
+ sub r8d, eax
movsxd r8, r8d
cmp r8, rdx
jl SHORT G_M18541_IG06
add eax, edx
mov dword ptr [rcx+0x1C], eax
- ;; size=40 bbWeight=1 PerfScore 10.75
+ ;; size=36 bbWeight=1 PerfScore 10.50
G_M18541_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
@@ -109,7 +108,7 @@ G_M18541_IG06: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=95 bbWeight=0 PerfScore 0.00
-; Total bytes of code 179, prolog size 7, PerfScore 16.75, instruction count 48, allocated bytes for code 179 (MethodHash=481ab792) for method System.IO.MemoryStream:set_Position(long):this (Tier1)
+; Total bytes of code 175, prolog size 7, PerfScore 16.50, instruction count 47, allocated bytes for code 175 (MethodHash=481ab792) for method System.IO.MemoryStream:set_Position(long):this (Tier1)
; ============================================================
Unwind Info:-3 (-1.60%) : 52004.dasm - Benchstone.BenchI.HeapSort:Test():bool:this (Tier1-OSR)
@@ -39,14 +39,13 @@ G_M10355_IG03: ; bbWeight=0.99, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
G_M10355_IG04: ; bbWeight=167.07, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
cmp ecx, esi
jae G_M10355_IG16
- mov edx, ecx
- neg edx
- add edx, 0x157D
+ mov edx, 0x157D
+ sub edx, ecx
mov dword ptr [rbx+4*rcx+0x10], edx
inc ecx
cmp ecx, 0x157C
jle SHORT G_M10355_IG04
- ;; size=32 bbWeight=167.07 PerfScore 751.80
+ ;; size=29 bbWeight=167.07 PerfScore 710.04
G_M10355_IG05: ; bbWeight=1.00, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
mov rcx, rbx
; gcrRegs +[rcx]
@@ -118,7 +117,7 @@ G_M10355_IG16: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 187, prolog size 29, PerfScore 1304.56, instruction count 57, allocated bytes for code 187 (MethodHash=5029d78c) for method Benchstone.BenchI.HeapSort:Test():bool:this (Tier1-OSR)
+; Total bytes of code 184, prolog size 29, PerfScore 1262.79, instruction count 56, allocated bytes for code 184 (MethodHash=5029d78c) for method Benchstone.BenchI.HeapSort:Test():bool:this (Tier1-OSR)
; ============================================================
Unwind Info:+4 (+16.00%) : 82023.dasm - System.Runtime.Intrinsics.Vector256:LastIndexOfWhereAllBitsSet[int](System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
@@ -24,15 +24,17 @@ G_M27078_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
vpcmpeqd ymm0, ymm0, ymmword ptr [rcx]
vmovmskps rax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=21 bbWeight=1 PerfScore 10.00
+ mov ecx, 31
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=25 bbWeight=1 PerfScore 10.25
G_M27078_IG03: ; bbWeight=1, epilog, nogc, extend
vzeroupper
ret
;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 0, PerfScore 12.00, instruction count 8, allocated bytes for code 25 (MethodHash=dc709639) for method System.Runtime.Intrinsics.Vector256:LastIndexOfWhereAllBitsSet[int](System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
+; Total bytes of code 29, prolog size 0, PerfScore 12.25, instruction count 9, allocated bytes for code 29 (MethodHash=dc709639) for method System.Runtime.Intrinsics.Vector256:LastIndexOfWhereAllBitsSet[int](System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
; ============================================================
Unwind Info:+4 (+16.00%) : 82022.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
@@ -25,15 +25,17 @@ G_M1790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byre
vpcmpeqd ymm0, ymm0, ymmword ptr [rcx]
vmovmskps rax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=21 bbWeight=1 PerfScore 10.00
+ mov ecx, 31
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=25 bbWeight=1 PerfScore 10.25
G_M1790_IG03: ; bbWeight=1, epilog, nogc, extend
vzeroupper
ret
;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 0, PerfScore 12.00, instruction count 8, allocated bytes for code 25 (MethodHash=0191f901) for method System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
+; Total bytes of code 29, prolog size 0, PerfScore 12.25, instruction count 9, allocated bytes for code 29 (MethodHash=0191f901) for method System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Tier1)
; ============================================================
Unwind Info:+4 (+14.81%) : 82025.dasm - System.Runtime.Intrinsics.Vector256:LastIndexOf[int](System.Runtime.Intrinsics.Vector256`1[int],int):int (Tier1)
@@ -23,15 +23,17 @@ G_M62779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
vpcmpeqd ymm0, ymm0, ymmword ptr [rcx]
vmovmskps rax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=23 bbWeight=1 PerfScore 11.50
+ mov ecx, 31
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=27 bbWeight=1 PerfScore 11.75
G_M62779_IG03: ; bbWeight=1, epilog, nogc, extend
vzeroupper
ret
;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 27, prolog size 0, PerfScore 13.50, instruction count 8, allocated bytes for code 27 (MethodHash=38aa0ac4) for method System.Runtime.Intrinsics.Vector256:LastIndexOf[int](System.Runtime.Intrinsics.Vector256`1[int],int):int (Tier1)
+; Total bytes of code 31, prolog size 0, PerfScore 13.75, instruction count 9, allocated bytes for code 31 (MethodHash=38aa0ac4) for method System.Runtime.Intrinsics.Vector256:LastIndexOf[int](System.Runtime.Intrinsics.Vector256`1[int],int):int (Tier1)
; ============================================================
Unwind Info:benchmarks.run_pgo_optrepeat.windows.x64.checked.mch
-7 (-5.98%) : 2951.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -31,18 +31,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -77,7 +75,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:-4 (-4.04%) : 4062.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
@@ -29,9 +29,8 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, edx
sub eax, dword ptr [rcx]
- mov r8d, eax
- neg r8d
- add r8d, 500
+ mov r8d, 500
+ sub r8d, eax
mov r10d, 1
cmp eax, 500
mov eax, r10d
@@ -39,7 +38,7 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
mov r8d, dword ptr [rcx+0x08]
test r8d, r8d
je SHORT G_M55382_IG07
- ;; size=44 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M55382_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
sub edx, dword ptr [rcx+0x04]
cmp edx, r8d
@@ -72,7 +71,7 @@ G_M55382_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 99, prolog size 0, PerfScore 15.88, instruction count 31, allocated bytes for code 99 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
+; Total bytes of code 95, prolog size 0, PerfScore 15.62, instruction count 30, allocated bytes for code 95 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
; ============================================================
Unwind Info:-12 (-3.27%) : 22.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
@@ -96,12 +96,11 @@ G_M36857_IG09: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add rbx, 8
;; size=4 bbWeight=2 PerfScore 0.50
G_M36857_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -16
jle SHORT G_M36857_IG15
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps ymm0, ymm0, ymm0
vpcmpeqw ymm0, ymm0, ymmword ptr [rcx+2*rbx]
@@ -134,12 +133,11 @@ G_M36857_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=10 bbWeight=1 PerfScore 3.25
G_M36857_IG15: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -8
jle SHORT G_M36857_IG19
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG16: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vpcmpeqw xmm0, xmm0, xmmword ptr [rcx+2*rbx]
@@ -159,10 +157,9 @@ G_M36857_IG18: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M36857_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rbx, 0xD1FFAB1E
jge SHORT G_M36857_IG30
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
- ;; size=21 bbWeight=4 PerfScore 8.00
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
+ ;; size=17 bbWeight=4 PerfScore 7.00
G_M36857_IG20: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmp rax, 4
jl G_M36857_IG04
@@ -210,7 +207,7 @@ G_M36857_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 367, prolog size 6, PerfScore 419.13, instruction count 112, allocated bytes for code 367 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
+; Total bytes of code 355, prolog size 6, PerfScore 416.13, instruction count 109, allocated bytes for code 355 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
; ============================================================
Unwind Info:+21 (+11.80%) : 13214.dasm - V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
@@ -28,7 +28,7 @@ G_M64469_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
cmp dword ptr [rcx+0x10], 0
jle G_M64469_IG05
;; size=14 bbWeight=1 PerfScore 6.00
-G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
cmp dword ptr [rax+0x10], 0
je G_M64469_IG07
@@ -38,36 +38,35 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
test al, 1
- je SHORT G_M64469_IG05
+ je G_M64469_IG05
mov ecx, eax
and ecx, 3
mov edx, eax
and edx, 15
imul edx, ecx
- neg edx
- add edx, 2
- imul ecx, edx
+ mov r8d, 2
+ sub r8d, edx
+ imul ecx, r8d
and ecx, 15
movzx rdx, al
imul edx, ecx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dl
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8b
mov edx, eax
imul edx, ecx
movzx rdx, dx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dx
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8w
imul eax, ecx
mov r8d, dword ptr [(reloc)] ; static handle
cdq
idiv edx:eax, r8d
- mov eax, edx
- neg eax
- add eax, 2
+ mov eax, 2
+ sub eax, edx
imul eax, ecx
cdq
idiv edx:eax, r8d
@@ -78,7 +77,7 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
neg edx
test ecx, ecx
cmovle eax, edx
- ;; size=135 bbWeight=0.50 PerfScore 44.38
+ ;; size=156 bbWeight=0.50 PerfScore 44.25
G_M64469_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret
@@ -101,7 +100,7 @@ G_M64469_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 178, prolog size 4, PerfScore 52.00, instruction count 60, allocated bytes for code 178 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
+; Total bytes of code 199, prolog size 4, PerfScore 51.88, instruction count 59, allocated bytes for code 199 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
; ============================================================
Unwind Info:+7 (+6.31%) : 9353.dasm - System.SpanHelpers:g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M29489_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqb ymm0, ymm1, ymm0
vpmovmskb eax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=17 bbWeight=0.50 PerfScore 3.00
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=24 bbWeight=0.50 PerfScore 3.12
G_M29489_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M29489_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 111, prolog size 0, PerfScore 71.75, instruction count 33, allocated bytes for code 111 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
+; Total bytes of code 118, prolog size 0, PerfScore 71.88, instruction count 34, allocated bytes for code 118 (MethodHash=fd4a8cce) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[byte,System.SpanHelpers+DontNegate`1[byte],System.Runtime.Intrinsics.Vector256`1[byte]](byref,byte,int):int (FullOpts)
; ============================================================
Unwind Info:+7 (+6.09%) : 3709.dasm - System.SpanHelpers:g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
@@ -61,9 +61,10 @@ G_M16881_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqw k1, ymm1, ymm0
kmovw eax, k1
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=19 bbWeight=0.50 PerfScore 2.50
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=26 bbWeight=0.50 PerfScore 2.62
G_M16881_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -80,7 +81,7 @@ G_M16881_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 115, prolog size 0, PerfScore 70.75, instruction count 33, allocated bytes for code 119 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 122, prolog size 0, PerfScore 70.88, instruction count 34, allocated bytes for code 126 (MethodHash=1e65be0e) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector256`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:coreclr_tests.run.windows.x64.checked.mch
-6 (-7.41%) : 536853.dasm - ILGEN_622380794:main():int (FullOpts)
@@ -28,18 +28,16 @@ G_M30338_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rdx, 0xD1FFAB1E
imul rcx, rdx
or rcx, rax
- mov rax, rcx
- neg rax
- mov rcx, 0xD1FFAB1E
- add rax, rcx
+ mov rax, 0xD1FFAB1E
+ sub rax, rcx
movzx rax, al
dec eax
- ;; size=80 bbWeight=1 PerfScore 8.00
+ ;; size=74 bbWeight=1 PerfScore 7.50
G_M30338_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 81, prolog size 0, PerfScore 9.00, instruction count 16, allocated bytes for code 81 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (FullOpts)
+; Total bytes of code 75, prolog size 0, PerfScore 8.50, instruction count 14, allocated bytes for code 75 (MethodHash=35ba897d) for method ILGEN_622380794:main():int (FullOpts)
; ============================================================
Unwind Info:-7 (-5.98%) : 503241.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -31,18 +31,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -77,7 +75,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:-9 (-5.33%) : 527446.dasm - Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1():long (FullOpts)
@@ -25,7 +25,7 @@
;* V14 tmp11 [V14 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V15 tmp12 [V15 ] ( 0, 0 ) long -> zero-ref "Inlining Arg"
;* V16 tmp13 [V16 ] ( 0, 0 ) struct (16) zero-ref do-not-enreg[SF] "stack allocated Test_10w250d.testout1+CL_0_1_1_1_1_1_1_1_1_1_1_1_1_1" <Test_10w250d.testout1+CL_0_1_1_1_1_1_1_1_1_1_1_1_1_1>
-; V17 tmp14 [V17,T04] ( 2, 2 ) long -> rbx "V05.[000..008)"
+; V17 tmp14 [V17,T04] ( 2, 2 ) long -> rdi "V05.[000..008)"
;* V18 tmp15 [V18 ] ( 0, 0 ) long -> zero-ref single-def "V16.[000..008)"
;* V19 tmp16 [V19 ] ( 0, 0 ) int -> zero-ref single-def "V16.[008..012)"
; V20 cse0 [V20,T02] ( 3, 3 ) long -> rbx "CSE #01: aggressive"
@@ -48,11 +48,8 @@ G_M48901_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcr arg pop 0
mov esi, eax
- mov rax, qword ptr [rbx]
- mov rbx, rax
- neg rbx
mov rdi, 0xD1FFAB1E
- add rbx, rdi
+ sub rdi, qword ptr [rbx]
vmovss xmm0, dword ptr [(reloc)] ; static handle
vmulss xmm0, xmm0, dword ptr [reloc @RWD00]
vcvtss2sd xmm0, xmm0, xmm0
@@ -66,12 +63,12 @@ G_M48901_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ja SHORT G_M48901_IG05
add edx, 0xD1FFAB1E
mov eax, edx
- sub rax, rbx
+ sub rax, rdi
mov r9, 0xD1FFAB1E
cmp qword ptr [rsp+0x28], r9
je SHORT G_M48901_IG03
call CORINFO_HELP_FAIL_FAST
- ;; size=131 bbWeight=1 PerfScore 56.50
+ ;; size=122 bbWeight=1 PerfScore 56.75
G_M48901_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
nop
;; size=1 bbWeight=1 PerfScore 0.25
@@ -90,7 +87,7 @@ G_M48901_IG05: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
RWD00 dd 42D00000h ; 104
-; Total bytes of code 169, prolog size 22, PerfScore 64.00, instruction count 41, allocated bytes for code 169 (MethodHash=0aca40fa) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1():long (FullOpts)
+; Total bytes of code 160, prolog size 22, PerfScore 64.25, instruction count 38, allocated bytes for code 160 (MethodHash=0aca40fa) for method Test_10w250d.testout1:Func_0_1_1_1_1_1_1_1_1_1_1_1_1_1():long (FullOpts)
; ============================================================
Unwind Info:+4 (+22.22%) : 490503.dasm - Test_Rotate:two_left_shifts(uint,int):uint (FullOpts)
@@ -17,16 +17,16 @@ G_M27504_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M27504_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
shlx eax, ecx, edx
- neg edx
- add edx, 32
- shlx ecx, ecx, edx
+ mov r8d, 32
+ sub r8d, edx
+ shlx ecx, ecx, r8d
or eax, ecx
- ;; size=17 bbWeight=1 PerfScore 1.75
+ ;; size=21 bbWeight=1 PerfScore 1.75
G_M27504_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 18, prolog size 0, PerfScore 2.75, instruction count 6, allocated bytes for code 18 (MethodHash=24ea948f) for method Test_Rotate:two_left_shifts(uint,int):uint (FullOpts)
+; Total bytes of code 22, prolog size 0, PerfScore 2.75, instruction count 6, allocated bytes for code 22 (MethodHash=24ea948f) for method Test_Rotate:two_left_shifts(uint,int):uint (FullOpts)
; ============================================================
Unwind Info:+21 (+11.80%) : 503042.dasm - V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
@@ -28,7 +28,7 @@ G_M64469_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
cmp dword ptr [rcx+0x10], 0
jle G_M64469_IG05
;; size=14 bbWeight=1 PerfScore 6.00
-G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref, isz
+G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
; gcrRegs -[rcx]
cmp dword ptr [rax+0x10], 0
je G_M64469_IG07
@@ -38,36 +38,35 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
mov eax, dword ptr [rax+0x10]
; gcrRegs -[rax]
test al, 1
- je SHORT G_M64469_IG05
+ je G_M64469_IG05
mov ecx, eax
and ecx, 3
mov edx, eax
and edx, 15
imul edx, ecx
- neg edx
- add edx, 2
- imul ecx, edx
+ mov r8d, 2
+ sub r8d, edx
+ imul ecx, r8d
and ecx, 15
movzx rdx, al
imul edx, ecx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dl
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8b
mov edx, eax
imul edx, ecx
movzx rdx, dx
- neg edx
- add edx, 2
- imul edx, ecx
- movzx rcx, dx
+ mov r8d, 2
+ sub r8d, edx
+ imul r8d, ecx
+ movzx rcx, r8w
imul eax, ecx
mov r8d, dword ptr [(reloc)] ; static handle
cdq
idiv edx:eax, r8d
- mov eax, edx
- neg eax
- add eax, 2
+ mov eax, 2
+ sub eax, edx
imul eax, ecx
cdq
idiv edx:eax, r8d
@@ -78,7 +77,7 @@ G_M64469_IG03: ; bbWeight=0.50, gcrefRegs=0001 {rax}, byrefRegs=0000 {},
neg edx
test ecx, ecx
cmovle eax, edx
- ;; size=135 bbWeight=0.50 PerfScore 44.38
+ ;; size=156 bbWeight=0.50 PerfScore 44.25
G_M64469_IG04: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret
@@ -101,7 +100,7 @@ G_M64469_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 178, prolog size 4, PerfScore 52.00, instruction count 60, allocated bytes for code 178 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
+; Total bytes of code 199, prolog size 4, PerfScore 51.88, instruction count 59, allocated bytes for code 199 (MethodHash=c0e4042a) for method V8.Crypto.BigInteger:invDigit():int:this (FullOpts)
; ============================================================
Unwind Info:+2 (+7.41%) : 497246.dasm - CSEWithDoubleNegation.DoNotMorphAwayCSEThatRepresentsDoubleNegation:DoubleNeg():int (FullOpts)
@@ -19,16 +19,16 @@ G_M1603_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M1603_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, 0xD1FFAB1E ; data for <unknown class>:<unknown field>
mov dword ptr [rax], 42
- mov eax, dword ptr [rax]
- neg eax
- add eax, 21
+ mov ecx, 21
+ sub ecx, dword ptr [rax]
+ mov eax, ecx
add eax, 43
- ;; size=26 bbWeight=1 PerfScore 4.00
+ ;; size=28 bbWeight=1 PerfScore 5.00
G_M1603_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 27, prolog size 0, PerfScore 5.00, instruction count 7, allocated bytes for code 27 (MethodHash=af84f9bc) for method CSEWithDoubleNegation.DoNotMorphAwayCSEThatRepresentsDoubleNegation:DoubleNeg():int (FullOpts)
+; Total bytes of code 29, prolog size 0, PerfScore 6.00, instruction count 7, allocated bytes for code 29 (MethodHash=af84f9bc) for method CSEWithDoubleNegation.DoNotMorphAwayCSEThatRepresentsDoubleNegation:DoubleNeg():int (FullOpts)
; ============================================================
Unwind Info:libraries.crossgen2.windows.x64.checked.mch
-8 (-10.67%) : 272143.dasm - System.Runtime.Serialization.CodeExporter:AppendToValidClrIdentifier(System.String,System.String):System.String (FullOpts)
@@ -24,17 +24,15 @@ G_M7027_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=8 bbWeight=1 PerfScore 1.50
G_M7027_IG02: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref, isz
; gcrRegs +[rcx]
- mov r8d, dword ptr [rcx+0x08]
- neg r8d
- add r8d, 511
+ mov r8d, 511
+ sub r8d, dword ptr [rcx+0x08]
mov r11d, dword ptr [rbx+0x08]
cmp r8d, r11d
jge SHORT G_M7027_IG04
- ;; size=23 bbWeight=1 PerfScore 5.75
+ ;; size=19 bbWeight=1 PerfScore 6.50
G_M7027_IG03: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
- mov r8d, r11d
- neg r8d
- add r8d, 511
+ mov r8d, 511
+ sub r8d, r11d
lea r11, [(reloc)] ; function address
xor edx, edx
call [r11]<unknown method>
@@ -42,7 +40,7 @@ G_M7027_IG03: ; bbWeight=0.50, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {
; gcr arg pop 0
mov rcx, rax
; gcrRegs +[rcx]
- ;; size=28 bbWeight=0.50 PerfScore 2.38
+ ;; size=24 bbWeight=0.50 PerfScore 2.25
G_M7027_IG04: ; bbWeight=1, gcrefRegs=000A {rcx rbx}, byrefRegs=0000 {}, byref
; gcrRegs -[rax]
mov rdx, rbx
@@ -58,7 +56,7 @@ G_M7027_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 75, prolog size 5, PerfScore 14.88, instruction count 22, allocated bytes for code 75 (MethodHash=f77ce48c) for method System.Runtime.Serialization.CodeExporter:AppendToValidClrIdentifier(System.String,System.String):System.String (FullOpts)
+; Total bytes of code 67, prolog size 5, PerfScore 15.50, instruction count 20, allocated bytes for code 67 (MethodHash=f77ce48c) for method System.Runtime.Serialization.CodeExporter:AppendToValidClrIdentifier(System.String,System.String):System.String (FullOpts)
; ============================================================
Unwind Info:-2 (-10.00%) : 111218.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
@@ -19,17 +19,16 @@
G_M60645_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M60645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, ecx
- neg eax
- add eax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub eax, ecx
shl rax, 32
or rax, 0xD1FFAB1E
- ;; size=19 bbWeight=1 PerfScore 1.50
+ ;; size=17 bbWeight=1 PerfScore 1.25
G_M60645_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 6, allocated bytes for code 20 (MethodHash=5f5a131a) for method Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
+; Total bytes of code 18, prolog size 0, PerfScore 2.25, instruction count 5, allocated bytes for code 18 (MethodHash=5f5a131a) for method Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
; ============================================================
Unwind Info:-7 (-5.98%) : 207880.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -32,18 +32,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -78,7 +76,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:+5 (+35.71%) : 158856.dasm - Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
@@ -18,15 +18,16 @@ G_M15962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M15962_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
- neg edx
- dec edx
+ mov eax, -1
+ sub eax, edx
+ mov edx, eax
lea rax, [(reloc)] ; function address
- ;; size=11 bbWeight=1 PerfScore 1.00
+ ;; size=16 bbWeight=1 PerfScore 1.25
G_M15962_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [rax]Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this
;; size=3 bbWeight=1 PerfScore 4.00
-; Total bytes of code 14, prolog size 0, PerfScore 5.00, instruction count 4, allocated bytes for code 14 (MethodHash=1dbac1a5) for method Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
+; Total bytes of code 19, prolog size 0, PerfScore 5.25, instruction count 5, allocated bytes for code 19 (MethodHash=1dbac1a5) for method Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
; ============================================================
Unwind Info:+4 (+33.33%) : 4413.dasm - System.UInt32:System.Numerics.IBinaryInteger.GetShortestBitLength():int:this (FullOpts)
@@ -19,14 +19,16 @@ G_M56864_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
xor eax, eax
lzcnt eax, dword ptr [rcx]
- neg eax
- add eax, 32
- ;; size=11 bbWeight=1 PerfScore 5.75
+ mov ecx, 32
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=15 bbWeight=1 PerfScore 6.00
G_M56864_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 12, prolog size 0, PerfScore 6.75, instruction count 5, allocated bytes for code 12 (MethodHash=ae7a21df) for method System.UInt32:System.Numerics.IBinaryInteger<System.UInt32>.GetShortestBitLength():int:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 7.00, instruction count 6, allocated bytes for code 16 (MethodHash=ae7a21df) for method System.UInt32:System.Numerics.IBinaryInteger<System.UInt32>.GetShortestBitLength():int:this (FullOpts)
; ============================================================
Unwind Info:+4 (+30.77%) : 4511.dasm - System.UInt64:System.Numerics.IBinaryInteger.GetShortestBitLength():int:this (FullOpts)
@@ -19,14 +19,16 @@ G_M25600_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
xor eax, eax
lzcnt rax, qword ptr [rcx]
- neg eax
- add eax, 64
- ;; size=12 bbWeight=1 PerfScore 5.75
+ mov ecx, 64
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=16 bbWeight=1 PerfScore 6.00
G_M25600_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 13, prolog size 0, PerfScore 6.75, instruction count 5, allocated bytes for code 13 (MethodHash=70fa9bff) for method System.UInt64:System.Numerics.IBinaryInteger<System.UInt64>.GetShortestBitLength():int:this (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 7.00, instruction count 6, allocated bytes for code 17 (MethodHash=70fa9bff) for method System.UInt64:System.Numerics.IBinaryInteger<System.UInt64>.GetShortestBitLength():int:this (FullOpts)
; ============================================================
Unwind Info:libraries.pmi.windows.x64.checked.mch
-2 (-10.00%) : 47441.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
@@ -18,17 +18,16 @@
G_M60645_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M60645_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, ecx
- neg eax
- add eax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub eax, ecx
shl rax, 32
or rax, 0xD1FFAB1E
- ;; size=19 bbWeight=1 PerfScore 1.50
+ ;; size=17 bbWeight=1 PerfScore 1.25
G_M60645_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 2.50, instruction count 6, allocated bytes for code 20 (MethodHash=5f5a131a) for method Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
+; Total bytes of code 18, prolog size 0, PerfScore 2.25, instruction count 5, allocated bytes for code 18 (MethodHash=5f5a131a) for method Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:GetSynthesizedMemberKey(int):Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey (FullOpts)
; ============================================================
Unwind Info:-7 (-5.98%) : 201694.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -31,18 +31,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -77,7 +75,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:-3 (-5.77%) : 57214.dasm - Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+One:g__safeAdd|9_1(Microsoft.CodeAnalysis.ConstantValue,int):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
@@ -27,22 +27,21 @@ G_M45256_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
call [rax+0x28]<unknown method>
; gcrRegs -[rcx]
; gcr arg pop 0
- mov ecx, eax
- neg ecx
- add ecx, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ sub ecx, eax
mov edx, 0xD1FFAB1E
add eax, ebx
cmp ecx, ebx
mov ecx, eax
cmovl ecx, edx
- ;; size=34 bbWeight=1 PerfScore 9.00
+ ;; size=31 bbWeight=1 PerfScore 8.75
G_M45256_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 32
pop rbx
tail.jmp [Microsoft.CodeAnalysis.ConstantValue:Create(int):Microsoft.CodeAnalysis.ConstantValue]
;; size=11 bbWeight=1 PerfScore 2.75
-; Total bytes of code 52, prolog size 5, PerfScore 13.25, instruction count 17, allocated bytes for code 52 (MethodHash=38414f37) for method Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+One:<RewriteNestedLengthTests>g__safeAdd|9_1(Microsoft.CodeAnalysis.ConstantValue,int):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
+; Total bytes of code 49, prolog size 5, PerfScore 13.00, instruction count 16, allocated bytes for code 49 (MethodHash=38414f37) for method Microsoft.CodeAnalysis.CSharp.DecisionDagBuilder+Tests+One:<RewriteNestedLengthTests>g__safeAdd|9_1(Microsoft.CodeAnalysis.ConstantValue,int):Microsoft.CodeAnalysis.ConstantValue (FullOpts)
; ============================================================
Unwind Info:+5 (+50.00%) : 136411.dasm - Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
@@ -17,14 +17,15 @@ G_M15962_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M15962_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
- neg edx
- dec edx
- ;; size=4 bbWeight=1 PerfScore 0.50
+ mov eax, -1
+ sub eax, edx
+ mov edx, eax
+ ;; size=9 bbWeight=1 PerfScore 0.75
G_M15962_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 10, prolog size 0, PerfScore 2.50, instruction count 3, allocated bytes for code 10 (MethodHash=1dbac1a5) for method Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
+; Total bytes of code 15, prolog size 0, PerfScore 2.75, instruction count 4, allocated bytes for code 15 (MethodHash=1dbac1a5) for method Microsoft.CodeAnalysis.Compilation:MakeMemberMissing(int):this (FullOpts)
; ============================================================
Unwind Info:+4 (+33.33%) : 3024.dasm - System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
@@ -17,14 +17,15 @@ G_M26981_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M26981_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
lzcnt eax, ecx
- neg eax
- add eax, 32
- ;; size=11 bbWeight=1 PerfScore 2.75
+ mov ecx, 32
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=15 bbWeight=1 PerfScore 3.00
G_M26981_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 12, prolog size 0, PerfScore 3.75, instruction count 5, allocated bytes for code 12 (MethodHash=960f969a) for method System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 4.00, instruction count 6, allocated bytes for code 16 (MethodHash=960f969a) for method System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
; ============================================================
Unwind Info:+4 (+30.77%) : 3025.dasm - System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
@@ -17,14 +17,15 @@ G_M33308_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M33308_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
lzcnt rax, rcx
- neg eax
- add eax, 64
- ;; size=12 bbWeight=1 PerfScore 2.75
+ mov ecx, 64
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=16 bbWeight=1 PerfScore 3.00
G_M33308_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 13, prolog size 0, PerfScore 3.75, instruction count 5, allocated bytes for code 13 (MethodHash=6a147de3) for method System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
+; Total bytes of code 17, prolog size 0, PerfScore 4.00, instruction count 6, allocated bytes for code 17 (MethodHash=6a147de3) for method System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
; ============================================================
Unwind Info:libraries_tests.run.windows.x64.Release.mch
-2 (-18.18%) : 315794.dasm - System.IO.Compression.OutputWindow:get_FreeBytes():int:this (Tier1)
@@ -18,15 +18,14 @@ G_M19840_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M19840_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
- mov eax, dword ptr [rcx+0x14]
- neg eax
- add eax, 0xD1FFAB1E
- ;; size=10 bbWeight=1 PerfScore 2.50
+ mov eax, 0xD1FFAB1E
+ sub eax, dword ptr [rcx+0x14]
+ ;; size=8 bbWeight=1 PerfScore 3.25
G_M19840_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 11, prolog size 0, PerfScore 3.50, instruction count 4, allocated bytes for code 11 (MethodHash=8870b27f) for method System.IO.Compression.OutputWindow:get_FreeBytes():int:this (Tier1)
+; Total bytes of code 9, prolog size 0, PerfScore 4.25, instruction count 3, allocated bytes for code 9 (MethodHash=8870b27f) for method System.IO.Compression.OutputWindow:get_FreeBytes():int:this (Tier1)
; ============================================================
Unwind Info:-3 (-9.09%) : 704455.dasm - System.Text.RegularExpressions.RegexPrefixAnalyzer:g__GetRangeLength|4_1(System.ValueTuple`2[char,char],bool):int (Tier1)
@@ -27,17 +27,16 @@ G_M24178_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movzx rcx, cx
sub eax, ecx
inc eax
- mov ecx, eax
- neg ecx
- add ecx, 0x10000
+ mov ecx, 0x10000
+ sub ecx, eax
test dl, dl
cmovne eax, ecx
- ;; size=32 bbWeight=1 PerfScore 3.00
+ ;; size=29 bbWeight=1 PerfScore 2.75
G_M24178_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 33, prolog size 0, PerfScore 4.00, instruction count 12, allocated bytes for code 33 (MethodHash=cf78a18d) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:<SortFixedDistanceSetsByQuality>g__GetRangeLength|4_1(System.ValueTuple`2[char,char],bool):int (Tier1)
+; Total bytes of code 30, prolog size 0, PerfScore 3.75, instruction count 11, allocated bytes for code 30 (MethodHash=cf78a18d) for method System.Text.RegularExpressions.RegexPrefixAnalyzer:<SortFixedDistanceSetsByQuality>g__GetRangeLength|4_1(System.ValueTuple`2[char,char],bool):int (Tier1)
; ============================================================
Unwind Info:-24 (-4.79%) : 130511.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
@@ -98,15 +98,14 @@ G_M36857_IG08: ; bbWeight=1.26, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
test rdi, rdi
jg SHORT G_M36857_IG07
;; size=11 bbWeight=1.26 PerfScore 2.21
-G_M36857_IG09: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M36857_IG09: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rsi, 0xD1FFAB1E
jge G_M36857_IG27
- mov rcx, rsi
- neg rcx
- add rcx, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ sub rcx, rsi
cmp rcx, 8
- jl G_M36857_IG21
- ;; size=36 bbWeight=0.94 PerfScore 3.07
+ jl SHORT G_M36857_IG21
+ ;; size=27 bbWeight=0.94 PerfScore 2.83
G_M36857_IG10: ; bbWeight=0.94, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
lea rcx, [rbx+2*rsi]
test cl, 31
@@ -123,12 +122,11 @@ G_M36857_IG12: ; bbWeight=0.45, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
add rsi, 8
;; size=4 bbWeight=0.45 PerfScore 0.11
G_M36857_IG13: ; bbWeight=0.92, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
and rdi, -16
jle G_M36857_IG23
- ;; size=23 bbWeight=0.92 PerfScore 1.83
+ ;; size=18 bbWeight=0.92 PerfScore 1.60
G_M36857_IG14: ; bbWeight=2.70, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rdi, 16
jl SHORT G_M36857_IG22
@@ -193,9 +191,8 @@ G_M36857_IG22: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
jmp SHORT G_M36857_IG15
;; size=28 bbWeight=0 PerfScore 0.00
G_M36857_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
and rdi, -8
jle SHORT G_M36857_IG25
cmp rdi, 8
@@ -207,7 +204,7 @@ G_M36857_IG23: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
- ;; size=51 bbWeight=0 PerfScore 0.00
+ ;; size=46 bbWeight=0 PerfScore 0.00
G_M36857_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vpcmpeqw xmm0, xmm0, xmmword ptr [rbx+2*rsi]
@@ -219,11 +216,10 @@ G_M36857_IG24: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M36857_IG25: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rsi, 0xD1FFAB1E
jge SHORT G_M36857_IG27
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
jmp G_M36857_IG05
- ;; size=27 bbWeight=0 PerfScore 0.00
+ ;; size=22 bbWeight=0 PerfScore 0.00
G_M36857_IG26: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
tzcnt eax, eax
shr eax, 1
@@ -248,7 +244,7 @@ G_M36857_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jmp G_M36857_IG19
;; size=8 bbWeight=0 PerfScore 0.00
-; Total bytes of code 501, prolog size 10, PerfScore 74.07, instruction count 131, allocated bytes for code 501 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
+; Total bytes of code 477, prolog size 10, PerfScore 73.60, instruction count 127, allocated bytes for code 477 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (Tier1)
; ============================================================
Unwind Info:+8 (+17.39%) : 60686.dasm - Microsoft.CodeAnalysis.Compilation:IsMemberMissing(int):bool:this (Tier1)
@@ -40,16 +40,17 @@ G_M36374_IG04: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0002 {
mov rcx, gword ptr [rcx+0x18]
cmp byte ptr [rcx], cl
mov byte ptr [rsp+0x20], 0
- neg edx
- dec edx
+ mov r8d, -1
+ sub r8d, edx
+ mov edx, r8d
lea r8, [rsp+0x20]
call [Microsoft.CodeAnalysis.SmallDictionary`2[int,bool]:TryGetValue(int,byref):bool:this]
; gcrRegs -[rcx]
; gcr arg pop 0
jmp SHORT G_M36374_IG03
- ;; size=28 bbWeight=0 PerfScore 0.00
+ ;; size=36 bbWeight=0 PerfScore 0.00
-; Total bytes of code 46, prolog size 4, PerfScore 5.75, instruction count 14, allocated bytes for code 46 (MethodHash=a9d671e9) for method Microsoft.CodeAnalysis.Compilation:IsMemberMissing(int):bool:this (Tier1)
+; Total bytes of code 54, prolog size 4, PerfScore 5.75, instruction count 15, allocated bytes for code 54 (MethodHash=a9d671e9) for method Microsoft.CodeAnalysis.Compilation:IsMemberMissing(int):bool:this (Tier1)
; ============================================================
Unwind Info:+4 (+16.00%) : 529677.dasm - System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Instrumented Tier1)
@@ -25,15 +25,17 @@ G_M1790_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byre
vpcmpeqd ymm0, ymm0, ymmword ptr [rcx]
vmovmskps rax, ymm0
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=21 bbWeight=1 PerfScore 10.00
+ mov ecx, 31
+ ; byrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
+ ;; size=25 bbWeight=1 PerfScore 10.25
G_M1790_IG03: ; bbWeight=1, epilog, nogc, extend
vzeroupper
ret
;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 25, prolog size 0, PerfScore 12.00, instruction count 8, allocated bytes for code 25 (MethodHash=0191f901) for method System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Instrumented Tier1)
+; Total bytes of code 29, prolog size 0, PerfScore 12.25, instruction count 9, allocated bytes for code 29 (MethodHash=0191f901) for method System.Runtime.Intrinsics.Vector256`1[int]:System.Runtime.Intrinsics.ISimdVector<System.Runtime.Intrinsics.Vector256<T>,T>.LastIndexOfWhereAllBitsSet(System.Runtime.Intrinsics.Vector256`1[int]):int (Instrumented Tier1)
; ============================================================
Unwind Info:+5 (+15.62%) : 451520.dasm - System.Byte:RotateLeft(byte,int):byte (Instrumented Tier1)
@@ -23,18 +23,18 @@ G_M14791_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov ecx, edx
and ecx, 7
shlx ecx, eax, ecx
- neg edx
- add edx, 8
- and edx, 7
- sarx eax, eax, edx
+ mov r8d, 8
+ sub r8d, edx
+ and r8d, 7
+ sarx eax, eax, r8d
or eax, ecx
movzx rax, al
- ;; size=31 bbWeight=1 PerfScore 3.00
+ ;; size=36 bbWeight=1 PerfScore 3.00
G_M14791_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 32, prolog size 0, PerfScore 4.00, instruction count 11, allocated bytes for code 32 (MethodHash=f806c638) for method System.Byte:RotateLeft(byte,int):byte (Instrumented Tier1)
+; Total bytes of code 37, prolog size 0, PerfScore 4.00, instruction count 11, allocated bytes for code 37 (MethodHash=f806c638) for method System.Byte:RotateLeft(byte,int):byte (Instrumented Tier1)
; ============================================================
Unwind Info:libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-2 (-20.00%) : 163379.dasm - System.Linq.Tests.OrderByTests+<>c:b__38_0(int):int:this (FullOpts)
@@ -16,15 +16,14 @@
G_M17922_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M17922_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, edx
- neg eax
- add eax, 0xD1FFAB1E
- ;; size=9 bbWeight=1 PerfScore 0.75
+ mov eax, 0xD1FFAB1E
+ sub eax, edx
+ ;; size=7 bbWeight=1 PerfScore 0.50
G_M17922_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 0, PerfScore 1.75, instruction count 4, allocated bytes for code 10 (MethodHash=beafb9fd) for method System.Linq.Tests.OrderByTests+<>c:<SortsLargeDescendingEnumerableCorrectly>b__38_0(int):int:this (FullOpts)
+; Total bytes of code 8, prolog size 0, PerfScore 1.50, instruction count 3, allocated bytes for code 8 (MethodHash=beafb9fd) for method System.Linq.Tests.OrderByTests+<>c:<SortsLargeDescendingEnumerableCorrectly>b__38_0(int):int:this (FullOpts)
; ============================================================
Unwind Info:-2 (-20.00%) : 163161.dasm - System.Linq.Tests.ThenByDescendingTests+<>c:b__13_0(int):int:this (FullOpts)
@@ -16,15 +16,14 @@
G_M31980_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
G_M31980_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- mov eax, edx
- neg eax
- add eax, 0x1869F
- ;; size=9 bbWeight=1 PerfScore 0.75
+ mov eax, 0x1869F
+ sub eax, edx
+ ;; size=7 bbWeight=1 PerfScore 0.50
G_M31980_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 0, PerfScore 1.75, instruction count 4, allocated bytes for code 10 (MethodHash=a7f98313) for method System.Linq.Tests.ThenByDescendingTests+<>c:<SortsLargeDescendingEnumerableCorrectly>b__13_0(int):int:this (FullOpts)
+; Total bytes of code 8, prolog size 0, PerfScore 1.50, instruction count 3, allocated bytes for code 8 (MethodHash=a7f98313) for method System.Linq.Tests.ThenByDescendingTests+<>c:<SortsLargeDescendingEnumerableCorrectly>b__13_0(int):int:this (FullOpts)
; ============================================================
Unwind Info:-7 (-5.98%) : 119512.dasm - System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
@@ -31,18 +31,16 @@ G_M28351_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
mov edi, r8d
;; size=15 bbWeight=1 PerfScore 4.00
G_M28351_IG02: ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
- mov edx, edi
- neg edx
- add edx, 0xD1FFAB1E
- mov r8d, esi
- neg r8d
- add r8d, 0xD1FFAB1E
+ mov edx, 0xD1FFAB1E
+ sub edx, edi
+ mov r8d, 0xD1FFAB1E
+ sub r8d, esi
cmp edx, esi
cmovl edi, r8d
mov edx, dword ptr [rbx+0x50]
cmp edx, esi
je SHORT G_M28351_IG04
- ;; size=36 bbWeight=1 PerfScore 5.25
+ ;; size=29 bbWeight=1 PerfScore 4.75
G_M28351_IG03: ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
mov r8d, dword ptr [rbx+0x4C]
sub r8d, edx
@@ -77,7 +75,7 @@ G_M28351_IG05: ; bbWeight=1, epilog, nogc, extend
ret
;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 117, prolog size 7, PerfScore 24.75, instruction count 41, allocated bytes for code 117 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
+; Total bytes of code 110, prolog size 7, PerfScore 24.25, instruction count 39, allocated bytes for code 110 (MethodHash=ef7e9140) for method System.Xml.XmlBufferReader:SetWindow(int,int):this (FullOpts)
; ============================================================
Unwind Info:+6 (+12.50%) : 117392.dasm - System.DirectoryServices.Protocols.LdapErrorMappings:IsLdapError(int):bool (FullOpts)
@@ -11,7 +11,7 @@
; V00 arg0 [V00,T00] ( 6, 4.50) int -> rcx single-def
;* V01 loc0 [V01 ] ( 0, 0 ) int -> zero-ref single-def
;# V02 OutArgs [V02 ] ( 1, 1 ) struct ( 0) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <Empty>
-; V03 tmp1 [V03,T01] ( 6, 3.50) int -> rcx "Inline return value spill temp"
+; V03 tmp1 [V03,T01] ( 6, 3.50) int -> rax "Inline return value spill temp"
;
; Lcl frame size = 0
@@ -24,34 +24,38 @@ G_M57930_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M57930_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp ecx, -17
jl SHORT G_M57930_IG04
- neg ecx
- add ecx, 80
- ;; size=10 bbWeight=0.50 PerfScore 0.88
-G_M57930_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, 35
- je SHORT G_M57930_IG07
+ mov eax, 80
+ sub eax, ecx
+ jmp SHORT G_M57930_IG05
+ ;; size=14 bbWeight=0.50 PerfScore 1.88
+G_M57930_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ mov eax, ecx
+ ;; size=2 bbWeight=0.50 PerfScore 0.12
+G_M57930_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp eax, 35
+ je SHORT G_M57930_IG08
;; size=5 bbWeight=1 PerfScore 1.25
-G_M57930_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- cmp ecx, 49
- je SHORT G_M57930_IG07
- cmp ecx, 112
- je SHORT G_M57930_IG07
- sub ecx, 81
- cmp ecx, 16
+G_M57930_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ cmp eax, 49
+ je SHORT G_M57930_IG08
+ cmp eax, 112
+ je SHORT G_M57930_IG08
+ sub eax, 81
+ cmp eax, 16
setbe al
movzx rax, al
;; size=22 bbWeight=0.50 PerfScore 2.12
-G_M57930_IG06: ; bbWeight=0.50, epilog, nogc, extend
+G_M57930_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-G_M57930_IG07: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M57930_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, 1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M57930_IG08: ; bbWeight=0.50, epilog, nogc, extend
+G_M57930_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 48, prolog size 0, PerfScore 6.62, instruction count 20, allocated bytes for code 48 (MethodHash=dc061db5) for method System.DirectoryServices.Protocols.LdapErrorMappings:IsLdapError(int):bool (FullOpts)
+; Total bytes of code 54, prolog size 0, PerfScore 7.75, instruction count 21, allocated bytes for code 54 (MethodHash=dc061db5) for method System.DirectoryServices.Protocols.LdapErrorMappings:IsLdapError(int):bool (FullOpts)
; ============================================================
Unwind Info:+2 (+9.52%) : 21049.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordCopyCtor:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
@@ -13,7 +13,7 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey>
; V03 tmp2 [V03,T01] ( 2, 4 ) int -> rax "Inlining Arg"
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "field V02._treeOrdinal (fldOffset=0x0)" P-INDEP
-; V05 tmp4 [V05,T02] ( 2, 2 ) int -> rax "field V02._position (fldOffset=0x4)" P-INDEP
+; V05 tmp4 [V05,T02] ( 2, 2 ) int -> rcx "field V02._position (fldOffset=0x4)" P-INDEP
;
; Lcl frame size = 0
@@ -22,16 +22,18 @@ G_M34543_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M34543_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov eax, dword ptr [rcx+0x28]
- neg eax
- add eax, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ ; gcrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
shl rax, 32
or rax, 0xD1FFAB1E
- ;; size=20 bbWeight=1 PerfScore 3.25
+ ;; size=22 bbWeight=1 PerfScore 3.50
G_M34543_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 21, prolog size 0, PerfScore 4.25, instruction count 6, allocated bytes for code 21 (MethodHash=5e747910) for method Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordCopyCtor:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
+; Total bytes of code 23, prolog size 0, PerfScore 4.50, instruction count 7, allocated bytes for code 23 (MethodHash=5e747910) for method Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordCopyCtor:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
; ============================================================
Unwind Info:+2 (+8.33%) : 21051.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordEqualityOperatorBase:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
@@ -13,7 +13,7 @@
;* V02 tmp1 [V02 ] ( 0, 0 ) struct ( 8) zero-ref ld-addr-op "Inline ldloca(s) first use temp" <Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey>
; V03 tmp2 [V03,T01] ( 2, 4 ) int -> rax "Inlining Arg"
;* V04 tmp3 [V04 ] ( 0, 0 ) int -> zero-ref "field V02._treeOrdinal (fldOffset=0x0)" P-INDEP
-; V05 tmp4 [V05,T02] ( 2, 2 ) int -> rax "field V02._position (fldOffset=0x4)" P-INDEP
+; V05 tmp4 [V05,T02] ( 2, 2 ) int -> rcx "field V02._position (fldOffset=0x4)" P-INDEP
;
; Lcl frame size = 0
@@ -22,16 +22,18 @@ G_M24669_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M24669_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
mov eax, dword ptr [rcx+0xC0]
- neg eax
- add eax, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ ; gcrRegs -[rcx]
+ sub ecx, eax
+ mov eax, ecx
shl rax, 32
or rax, 0xD1FFAB1E
- ;; size=23 bbWeight=1 PerfScore 3.25
+ ;; size=25 bbWeight=1 PerfScore 3.50
G_M24669_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 4.25, instruction count 6, allocated bytes for code 24 (MethodHash=c1429fa2) for method Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordEqualityOperatorBase:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
+; Total bytes of code 26, prolog size 0, PerfScore 4.50, instruction count 7, allocated bytes for code 26 (MethodHash=c1429fa2) for method Microsoft.CodeAnalysis.CSharp.Symbols.SynthesizedRecordEqualityOperatorBase:GetLexicalSortKey():Microsoft.CodeAnalysis.CSharp.Symbols.LexicalSortKey:this (FullOpts)
; ============================================================
Unwind Info:realworld.run.windows.x64.checked.mch
-30 (-4.13%) : 12375.dasm - Microsoft.CodeAnalysis.EnumConstantHelper:OffsetValue(Microsoft.CodeAnalysis.ConstantValue,uint,byref):int (FullOpts)
@@ -77,9 +77,8 @@ G_M56284_IG04: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
mov rsi, rax
- mov rcx, rsi
- neg rcx
- dec rcx
+ mov rcx, -1
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -99,7 +98,7 @@ G_M56284_IG04: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=68 bbWeight=0.50 PerfScore 9.00
+ ;; size=72 bbWeight=0.50 PerfScore 8.88
G_M56284_IG05: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -110,10 +109,8 @@ G_M56284_IG05: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
mov rsi, rax
- mov rcx, rsi
- neg rcx
- mov rdx, 0xD1FFAB1E
- add rcx, rdx
+ mov rcx, 0xD1FFAB1E
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -133,7 +130,7 @@ G_M56284_IG05: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=79 bbWeight=0.50 PerfScore 9.12
+ ;; size=73 bbWeight=0.50 PerfScore 8.88
G_M56284_IG06: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -144,10 +141,8 @@ G_M56284_IG06: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
mov esi, eax
- mov rcx, rsi
- neg rcx
- mov edx, 0xD1FFAB1E
- add rcx, rdx
+ mov ecx, 0xD1FFAB1E
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -167,7 +162,7 @@ G_M56284_IG06: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=72 bbWeight=0.50 PerfScore 9.12
+ ;; size=66 bbWeight=0.50 PerfScore 8.88
G_M56284_IG07: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -178,9 +173,8 @@ G_M56284_IG07: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
movsxd rsi, eax
- mov rcx, rsi
- neg rcx
- add rcx, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -200,7 +194,7 @@ G_M56284_IG07: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=72 bbWeight=0.50 PerfScore 9.00
+ ;; size=67 bbWeight=0.50 PerfScore 8.88
G_M56284_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -211,9 +205,8 @@ G_M56284_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
mov esi, eax
- mov rcx, rsi
- neg rcx
- add rcx, 0xFFFF
+ mov ecx, 0xFFFF
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -234,7 +227,7 @@ G_M56284_IG08: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=75 bbWeight=0.50 PerfScore 9.12
+ ;; size=70 bbWeight=0.50 PerfScore 9.00
G_M56284_IG09: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -245,9 +238,8 @@ G_M56284_IG09: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
movsxd rsi, eax
- mov rcx, rsi
- neg rcx
- add rcx, 0x7FFF
+ mov ecx, 0x7FFF
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -268,7 +260,7 @@ G_M56284_IG09: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp G_M56284_IG12
- ;; size=77 bbWeight=0.50 PerfScore 9.12
+ ;; size=72 bbWeight=0.50 PerfScore 9.00
G_M56284_IG10: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -279,9 +271,8 @@ G_M56284_IG10: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
mov esi, eax
- mov rcx, rsi
- neg rcx
- add rcx, 255
+ mov ecx, 255
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -302,7 +293,7 @@ G_M56284_IG10: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
jmp SHORT G_M56284_IG12
- ;; size=68 bbWeight=0.50 PerfScore 9.12
+ ;; size=63 bbWeight=0.50 PerfScore 9.00
G_M56284_IG11: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi}, byref, isz
; gcrRegs +[rsi]
; byrRegs +[rdi]
@@ -313,9 +304,8 @@ G_M56284_IG11: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
; gcrRegs -[rcx rsi]
; gcr arg pop 0
movsxd rsi, eax
- mov rcx, rsi
- neg rcx
- add rcx, 127
+ mov ecx, 127
+ sub rcx, rsi
mov edx, ebx
call [Microsoft.CodeAnalysis.EnumConstantHelper:CheckOverflow(ulong,uint):int]
; gcr arg pop 0
@@ -335,7 +325,7 @@ G_M56284_IG11: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0080 {rdi
call CORINFO_HELP_CHECKED_ASSIGN_REF
; gcrRegs -[rax rdx]
; byrRegs -[rcx rdi]
- ;; size=65 bbWeight=0.50 PerfScore 8.12
+ ;; size=63 bbWeight=0.50 PerfScore 8.00
G_M56284_IG12: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov eax, r14d
;; size=3 bbWeight=1 PerfScore 0.25
@@ -386,7 +376,7 @@ RWD00 dd G_M56284_IG11 - G_M56284_IG02
dd G_M56284_IG04 - G_M56284_IG02
-; Total bytes of code 727, prolog size 10, PerfScore 99.33, instruction count 203, allocated bytes for code 727 (MethodHash=c7d92423) for method Microsoft.CodeAnalysis.EnumConstantHelper:OffsetValue(Microsoft.CodeAnalysis.ConstantValue,uint,byref):int (FullOpts)
+; Total bytes of code 697, prolog size 10, PerfScore 98.08, instruction count 193, allocated bytes for code 697 (MethodHash=c7d92423) for method Microsoft.CodeAnalysis.EnumConstantHelper:OffsetValue(Microsoft.CodeAnalysis.ConstantValue,uint,byref):int (FullOpts)
; ============================================================
Unwind Info:-4 (-4.04%) : 2909.dasm - System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
@@ -29,9 +29,8 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, edx
sub eax, dword ptr [rcx]
- mov r8d, eax
- neg r8d
- add r8d, 500
+ mov r8d, 500
+ sub r8d, eax
mov r10d, 1
cmp eax, 500
mov eax, r10d
@@ -39,7 +38,7 @@ G_M55382_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
mov r8d, dword ptr [rcx+0x08]
test r8d, r8d
je SHORT G_M55382_IG07
- ;; size=44 bbWeight=1 PerfScore 8.25
+ ;; size=40 bbWeight=1 PerfScore 8.00
G_M55382_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref, isz
sub edx, dword ptr [rcx+0x04]
cmp edx, r8d
@@ -72,7 +71,7 @@ G_M55382_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 99, prolog size 0, PerfScore 15.88, instruction count 31, allocated bytes for code 99 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
+; Total bytes of code 95, prolog size 0, PerfScore 15.62, instruction count 30, allocated bytes for code 95 (MethodHash=422727a9) for method System.Threading.PortableThreadPool+GateThread+DelayHelper:GetNextDelay(int):uint:this (FullOpts)
; ============================================================
Unwind Info:-12 (-3.27%) : 22.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
@@ -96,12 +96,11 @@ G_M36857_IG09: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add rbx, 8
;; size=4 bbWeight=2 PerfScore 0.50
G_M36857_IG10: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -16
jle SHORT G_M36857_IG15
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps ymm0, ymm0, ymm0
vpcmpeqw ymm0, ymm0, ymmword ptr [rcx+2*rbx]
@@ -134,12 +133,11 @@ G_M36857_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
ret
;; size=10 bbWeight=1 PerfScore 3.25
G_M36857_IG15: ; bbWeight=4, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref, isz
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
and rax, -8
jle SHORT G_M36857_IG19
- ;; size=18 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG16: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vpcmpeqw xmm0, xmm0, xmmword ptr [rcx+2*rbx]
@@ -159,10 +157,9 @@ G_M36857_IG18: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M36857_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rbx, 0xD1FFAB1E
jge SHORT G_M36857_IG30
- mov rax, rbx
- neg rax
- add rax, 0xD1FFAB1E
- ;; size=21 bbWeight=4 PerfScore 8.00
+ mov eax, 0xD1FFAB1E
+ sub rax, rbx
+ ;; size=17 bbWeight=4 PerfScore 7.00
G_M36857_IG20: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmp rax, 4
jl G_M36857_IG04
@@ -210,7 +207,7 @@ G_M36857_IG30: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
int3
;; size=7 bbWeight=0 PerfScore 0.00
-; Total bytes of code 367, prolog size 6, PerfScore 419.13, instruction count 112, allocated bytes for code 367 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
+; Total bytes of code 355, prolog size 6, PerfScore 416.13, instruction count 109, allocated bytes for code 355 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
; ============================================================
Unwind Info:+7 (+6.60%) : 1633.dasm - System.SpanHelpers:g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector128`1[short]](byref,short,int):int (FullOpts)
@@ -60,9 +60,10 @@ G_M49243_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqw k1, xmm1, xmm0
kmovb eax, k1
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=19 bbWeight=0.50 PerfScore 2.50
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=26 bbWeight=0.50 PerfScore 2.62
G_M49243_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
@@ -77,7 +78,7 @@ G_M49243_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 106, prolog size 0, PerfScore 54.75, instruction count 30, allocated bytes for code 110 (MethodHash=25f83fa4) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector128`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 113, prolog size 0, PerfScore 54.88, instruction count 31, allocated bytes for code 117 (MethodHash=25f83fa4) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector128`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:+7 (+6.25%) : 8356.dasm - System.SpanHelpers:g__SimdImpl|99_0[int,System.SpanHelpers+Negate`1[int],System.Runtime.Intrinsics.Vector128`1[int]](byref,int,int):int (FullOpts)
@@ -58,9 +58,10 @@ G_M1450_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000
vpcmpfalsed k1, xmm1, xmm0
kmovb eax, k1
lzcnt eax, eax
- neg eax
- add eax, 31
- ;; size=20 bbWeight=0.50 PerfScore 3.75
+ mov r8d, 31
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=27 bbWeight=0.50 PerfScore 3.88
G_M1450_IG07: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
@@ -75,7 +76,7 @@ G_M1450_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 112, prolog size 0, PerfScore 59.50, instruction count 30, allocated bytes for code 120 (MethodHash=1dfafa55) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[int,System.SpanHelpers+Negate`1[int],System.Runtime.Intrinsics.Vector128`1[int]](byref,int,int):int (FullOpts)
+; Total bytes of code 119, prolog size 0, PerfScore 59.62, instruction count 31, allocated bytes for code 127 (MethodHash=1dfafa55) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[int,System.SpanHelpers+Negate`1[int],System.Runtime.Intrinsics.Vector128`1[int]](byref,int,int):int (FullOpts)
; ============================================================
Unwind Info:+26 (+5.84%) : 5284.dasm - System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst](byref,int,byref):int (FullOpts)
@@ -57,7 +57,7 @@
; V46 tmp24 [V46,T14] ( 3, 1.50) int -> rax "Inline return value spill temp"
;* V47 tmp25 [V47 ] ( 0, 0 ) simd32 -> zero-ref "Inlining Arg" <System.Runtime.Intrinsics.Vector256`1[byte]>
;* V48 tmp26 [V48 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V49 tmp27 [V49,T09] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+; V49 tmp27 [V49,T09] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
; V50 tmp28 [V50,T22] ( 3, 3 ) simd16 -> mm1 "spilled call-like call argument"
;* V51 tmp29 [V51 ] ( 0, 0 ) simd16 -> zero-ref "spilled call-like call argument"
;* V52 tmp30 [V52 ] ( 0, 0 ) simd16 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[byte]>
@@ -74,7 +74,7 @@
;* V63 tmp41 [V63 ] ( 0, 0 ) simd16 -> zero-ref "Inline return value spill temp" <System.Runtime.Intrinsics.Vector128`1[byte]>
; V64 tmp42 [V64,T15] ( 3, 1.50) int -> rax "Inline return value spill temp"
;* V65 tmp43 [V65 ] ( 0, 0 ) int -> zero-ref "Inline stloc first use temp"
-; V66 tmp44 [V66,T10] ( 4, 2 ) int -> rax "Inline stloc first use temp"
+; V66 tmp44 [V66,T10] ( 4, 2 ) int -> r8 "Inline stloc first use temp"
; V67 tmp45 [V67,T07] ( 5, 5 ) int -> rax "Single return block return value"
; V68 cse0 [V68,T18] ( 4, 5.50) simd32 -> mm1 hoist multi-def "CSE #01: aggressive"
; V69 cse1 [V69,T19] ( 4, 5.50) simd32 -> mm2 hoist multi-def "CSE #02: aggressive"
@@ -86,14 +86,14 @@ G_M58588_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M58588_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref
; byrRegs +[rcx r8]
cmp edx, 8
- jl G_M58588_IG10
+ jl G_M58588_IG12
;; size=9 bbWeight=1 PerfScore 1.25
G_M58588_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
mov eax, edx
lea rax, bword ptr [rcx+2*rax]
; byrRegs +[rax]
cmp edx, 16
- jg SHORT G_M58588_IG05
+ jg G_M58588_IG06
vmovups xmm0, xmmword ptr [r8]
lea r8, bword ptr [rcx+0x10]
lea rdx, bword ptr [rax-0x10]
@@ -109,7 +109,7 @@ G_M58588_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8
vpshufb xmm1, xmm1, xmm2
vpand xmm0, xmm1, xmm0
vptest xmm0, xmm0
- je G_M58588_IG14
+ je G_M58588_IG16
vxorps xmm1, xmm1, xmm1
vpcmpeqb xmm0, xmm1, xmm0
vpmovmskb eax, xmm0
@@ -117,30 +117,35 @@ G_M58588_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8
not eax
movzx rax, ax
lzcnt eax, eax
- neg eax
- add eax, 31
- cmp eax, 8
+ mov r8d, 31
+ ; byrRegs -[r8]
+ sub r8d, eax
+ cmp r8d, 8
jl SHORT G_M58588_IG04
sub rdx, rcx
; byrRegs -[rdx]
shr rdx, 1
- lea eax, [rdx+rax-0x08]
- ;; size=128 bbWeight=0.50 PerfScore 17.83
+ lea eax, [rdx+r8-0x08]
+ jmp SHORT G_M58588_IG05
+ ;; size=140 bbWeight=0.50 PerfScore 18.83
G_M58588_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
- ; byrRegs -[rcx r8]
- jmp G_M58588_IG17
+ ; byrRegs -[rcx]
+ mov eax, r8d
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M58588_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ jmp G_M58588_IG19
;; size=5 bbWeight=0.50 PerfScore 1.00
-G_M58588_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0103 {rax rcx r8}, byref, isz
+G_M58588_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0103 {rax rcx r8}, byref, isz
; byrRegs +[rax rcx r8]
vmovups ymm0, ymmword ptr [r8]
cmp edx, 32
- jle SHORT G_M58588_IG07
+ jle SHORT G_M58588_IG08
lea rdx, bword ptr [rcx+0x40]
; byrRegs +[rdx]
vbroadcastss ymm1, dword ptr [reloc @RWD00]
vbroadcastsd ymm2, qword ptr [reloc @RWD12]
;; size=32 bbWeight=0.50 PerfScore 7.38
-G_M58588_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0007 {rax rcx rdx}, byref, isz
+G_M58588_IG07: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0007 {rax rcx rdx}, byref, isz
; byrRegs -[r8]
add rax, -64
vmovups ymm3, ymmword ptr [rax]
@@ -151,11 +156,11 @@ G_M58588_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0007 {rax rcx r
vpshufb ymm3, ymm2, ymm3
vpand ymm3, ymm3, ymm4
vptest ymm3, ymm3
- jne G_M58588_IG09
+ jne G_M58588_IG11
cmp rax, rdx
- ja SHORT G_M58588_IG06
+ ja SHORT G_M58588_IG07
;; size=52 bbWeight=4 PerfScore 84.67
-G_M58588_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M58588_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
; byrRegs -[rdx]
lea r8, bword ptr [rcx+0x20]
; byrRegs +[r8]
@@ -173,7 +178,7 @@ G_M58588_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rc
vpshufb ymm0, ymm2, ymm0
vpand ymm0, ymm0, ymm3
vptest ymm0, ymm0
- je G_M58588_IG14
+ je G_M58588_IG16
vpermq ymm0, ymm0, -40
vxorps ymm1, ymm1, ymm1
vpcmpeqb ymm0, ymm1, ymm0
@@ -181,20 +186,25 @@ G_M58588_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rc
; byrRegs -[rax]
not eax
lzcnt eax, eax
- neg eax
- add eax, 31
- cmp eax, 16
- jl SHORT G_M58588_IG08
+ mov r8d, 31
+ ; byrRegs -[r8]
+ sub r8d, eax
+ cmp r8d, 16
+ jl SHORT G_M58588_IG09
sub rdx, rcx
; byrRegs -[rdx]
shr rdx, 1
- lea eax, [rdx+rax-0x10]
- ;; size=119 bbWeight=0.50 PerfScore 20.38
-G_M58588_IG08: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- ; byrRegs -[rcx r8]
- jmp SHORT G_M58588_IG17
+ lea eax, [rdx+r8-0x10]
+ jmp SHORT G_M58588_IG10
+ ;; size=127 bbWeight=0.50 PerfScore 21.38
+G_M58588_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+ ; byrRegs -[rcx]
+ mov eax, r8d
+ ;; size=3 bbWeight=0.50 PerfScore 0.12
+G_M58588_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
+ jmp SHORT G_M58588_IG19
;; size=2 bbWeight=0.50 PerfScore 1.00
-G_M58588_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
+G_M58588_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rcx}, byref, isz
; byrRegs +[rax rcx]
sub rax, rcx
; byrRegs -[rax]
@@ -208,46 +218,46 @@ G_M58588_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0003 {rax rc
lzcnt ecx, ecx
sub eax, ecx
add eax, 31
- jmp SHORT G_M58588_IG17
+ jmp SHORT G_M58588_IG19
;; size=37 bbWeight=0.50 PerfScore 5.67
-G_M58588_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
+G_M58588_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
; byrRegs +[rcx r8]
dec edx
- js SHORT G_M58588_IG14
+ js SHORT G_M58588_IG16
;; size=4 bbWeight=0.50 PerfScore 0.62
-G_M58588_IG11: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
+G_M58588_IG13: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
movsxd rax, edx
movzx rax, word ptr [rcx+2*rax]
cmp byte ptr [r8], r8b
lea r10, bword ptr [r8+0x20]
; byrRegs +[r10]
cmp eax, 256
- jge SHORT G_M58588_IG13
+ jge SHORT G_M58588_IG15
;; size=21 bbWeight=4 PerfScore 28.00
-G_M58588_IG12: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0502 {rcx r8 r10}, byref, isz
+G_M58588_IG14: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0502 {rcx r8 r10}, byref, isz
mov r9d, eax
sar r9d, 5
mov r10d, dword ptr [r10+4*r9]
; byrRegs -[r10]
bt r10d, eax
- jb SHORT G_M58588_IG16
+ jb SHORT G_M58588_IG18
;; size=17 bbWeight=2 PerfScore 8.50
-G_M58588_IG13: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
+G_M58588_IG15: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0102 {rcx r8}, byref, isz
dec edx
- jns SHORT G_M58588_IG11
+ jns SHORT G_M58588_IG13
;; size=4 bbWeight=4 PerfScore 5.00
-G_M58588_IG14: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
+G_M58588_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rcx r8]
mov eax, -1
;; size=5 bbWeight=0.50 PerfScore 0.12
-G_M58588_IG15: ; bbWeight=0.50, epilog, nogc, extend
+G_M58588_IG17: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-G_M58588_IG16: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
+G_M58588_IG18: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
mov eax, edx
;; size=2 bbWeight=0.50 PerfScore 0.12
-G_M58588_IG17: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
+G_M58588_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
vzeroupper
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
@@ -257,7 +267,7 @@ RWD12 dq 8040201008040201h
RWD20 dq 8040201008040201h
-; Total bytes of code 445, prolog size 0, PerfScore 183.54, instruction count 116, allocated bytes for code 445 (MethodHash=00051b23) for method System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst](byref,int,byref):int (FullOpts)
+; Total bytes of code 471, prolog size 0, PerfScore 185.79, instruction count 118, allocated bytes for code 471 (MethodHash=00051b23) for method System.Buffers.IndexOfAnyAsciiSearcher:LastIndexOfAny[System.Buffers.IndexOfAnyAsciiSearcher+DontNegate,System.Buffers.IndexOfAnyAsciiSearcher+Default,System.Buffers.SearchValues+FalseConst](byref,int,byref):int (FullOpts)
; ============================================================
Unwind Info:smoke_tests.nativeaot.windows.x64.checked.mch
-1 (-4.55%) : 27764.dasm - System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
@@ -21,14 +21,14 @@ G_M26981_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, 32
test ecx, ecx
cmove eax, edx
- neg eax
- add eax, 32
- ;; size=21 bbWeight=1 PerfScore 3.50
+ sub edx, eax
+ mov eax, edx
+ ;; size=20 bbWeight=1 PerfScore 3.50
G_M26981_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 22, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 22 (MethodHash=960f969a) for method System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
+; Total bytes of code 21, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 21 (MethodHash=960f969a) for method System.Number+BigInteger:CountSignificantBits(uint):int (FullOpts)
; ============================================================
Unwind Info:-20 (-4.44%) : 13484.dasm - System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
@@ -83,12 +83,11 @@ G_M36857_IG05: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
G_M36857_IG06: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rsi, 0xD1FFAB1E
jge G_M36857_IG29
- mov rcx, rsi
- neg rcx
- add rcx, 0xD1FFAB1E
+ mov ecx, 0xD1FFAB1E
+ sub rcx, rsi
cmp rcx, 8
jge SHORT G_M36857_IG08
- ;; size=32 bbWeight=4 PerfScore 13.00
+ ;; size=27 bbWeight=4 PerfScore 12.00
G_M36857_IG07: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, gword ptr [(reloc)]
; gcrRegs +[rcx]
@@ -121,12 +120,11 @@ G_M36857_IG11: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
add rsi, 8
;; size=4 bbWeight=2 PerfScore 0.50
G_M36857_IG12: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
and rdi, -16
jle SHORT G_M36857_IG16
- ;; size=19 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG13: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rdi, 16
jge SHORT G_M36857_IG15
@@ -152,12 +150,11 @@ G_M36857_IG15: ; bbWeight=16, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
jg SHORT G_M36857_IG13
;; size=34 bbWeight=16 PerfScore 149.33
G_M36857_IG16: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
and rdi, -8
jle SHORT G_M36857_IG19
- ;; size=19 bbWeight=4 PerfScore 8.00
+ ;; size=14 bbWeight=4 PerfScore 7.00
G_M36857_IG17: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rdi, 8
jge SHORT G_M36857_IG18
@@ -180,10 +177,9 @@ G_M36857_IG18: ; bbWeight=2, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M36857_IG19: ; bbWeight=4, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
cmp rsi, 0xD1FFAB1E
jge SHORT G_M36857_IG29
- mov rdi, rsi
- neg rdi
- add rdi, 0xD1FFAB1E
- ;; size=22 bbWeight=4 PerfScore 8.00
+ mov edi, 0xD1FFAB1E
+ sub rdi, rsi
+ ;; size=17 bbWeight=4 PerfScore 7.00
G_M36857_IG20: ; bbWeight=8, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
cmp rdi, 4
jl G_M36857_IG04
@@ -243,7 +239,7 @@ G_M36857_IG29: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 450, prolog size 10, PerfScore 467.79, instruction count 128, allocated bytes for code 450 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
+; Total bytes of code 430, prolog size 10, PerfScore 463.79, instruction count 124, allocated bytes for code 430 (MethodHash=87b17006) for method System.SpanHelpers:IndexOfNullCharacter(ptr):int (FullOpts)
; ============================================================
Unwind Info:-1 (-3.85%) : 28233.dasm - System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
@@ -21,14 +21,14 @@ G_M33308_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov edx, 64
test rcx, rcx
cmove rax, rdx
- neg eax
- add eax, 64
- ;; size=25 bbWeight=1 PerfScore 3.50
+ sub edx, eax
+ mov eax, edx
+ ;; size=24 bbWeight=1 PerfScore 3.50
G_M33308_IG03: ; bbWeight=1, epilog, nogc, extend
ret
;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 26, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 26 (MethodHash=6a147de3) for method System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
+; Total bytes of code 25, prolog size 0, PerfScore 4.50, instruction count 8, allocated bytes for code 25 (MethodHash=6a147de3) for method System.Number+BigInteger:CountSignificantBits(ulong):int (FullOpts)
; ============================================================
Unwind Info:+8 (+5.63%) : 18333.dasm - System.Number:TryUInt32ToBinaryStr[char](uint,int,System.Span`1[char],byref):bool (FullOpts)
@@ -16,7 +16,7 @@
; V06 loc2 [V06 ] ( 2, 1 ) byref -> [rsp+0x20] must-init pinned
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V08 tmp1 [V08,T10] ( 4, 3 ) int -> rax "Inline return value spill temp"
-; V09 tmp2 [V09,T07] ( 3, 6 ) int -> rax "Inlining Arg"
+; V09 tmp2 [V09,T07] ( 3, 6 ) int -> r10 "Inlining Arg"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[char]>
; V11 tmp4 [V11,T02] ( 4, 25 ) int -> rdx "Inlining Arg"
; V12 tmp5 [V12,T03] ( 2, 16 ) int -> rdx "dup spill"
@@ -46,13 +46,14 @@ G_M18913_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, b
cmovle edx, eax
xor eax, eax
lzcnt eax, ecx
- neg eax
- add eax, 32
- cmp edx, eax
+ mov r10d, 32
+ sub r10d, eax
+ cmp edx, r10d
+ mov eax, r10d
cmovge eax, edx
cmp eax, dword ptr [r8+0x08]
jg SHORT G_M18913_IG10
- ;; size=32 bbWeight=1 PerfScore 8.00
+ ;; size=40 bbWeight=1 PerfScore 8.25
G_M18913_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref, isz
mov dword ptr [r9], eax
mov r8, bword ptr [r8]
@@ -109,7 +110,7 @@ G_M18913_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-; Total bytes of code 142, prolog size 11, PerfScore 34.62, instruction count 44, allocated bytes for code 142 (MethodHash=da43b61e) for method System.Number:TryUInt32ToBinaryStr[char](uint,int,System.Span`1[char],byref):bool (FullOpts)
+; Total bytes of code 150, prolog size 11, PerfScore 34.88, instruction count 45, allocated bytes for code 150 (MethodHash=da43b61e) for method System.Number:TryUInt32ToBinaryStr[char](uint,int,System.Span`1[char],byref):bool (FullOpts)
; ============================================================
Unwind Info:+7 (+5.60%) : 18669.dasm - System.SpanHelpers:g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector512`1[short]](byref,short,int):int (FullOpts)
@@ -54,9 +54,10 @@ G_M33814_IG06: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=000
vpcmpeqw k1, zmm1, zmm0
kmovd eax, k1
lzcnt rax, rax
- neg eax
- add eax, 63
- ;; size=20 bbWeight=0.50 PerfScore 2.50
+ mov r8d, 63
+ sub r8d, eax
+ mov eax, r8d
+ ;; size=27 bbWeight=0.50 PerfScore 2.62
G_M33814_IG07: ; bbWeight=0.50, epilog, nogc, extend
vzeroupper
ret
@@ -73,7 +74,7 @@ G_M33814_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret
;; size=4 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 125, prolog size 0, PerfScore 48.25, instruction count 33, allocated bytes for code 135 (MethodHash=d4aa7be9) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector512`1[short]](byref,short,int):int (FullOpts)
+; Total bytes of code 132, prolog size 0, PerfScore 48.38, instruction count 34, allocated bytes for code 142 (MethodHash=d4aa7be9) for method System.SpanHelpers:<LastIndexOfValueType>g__SimdImpl|99_0[short,System.SpanHelpers+DontNegate`1[short],System.Runtime.Intrinsics.Vector512`1[short]](byref,short,int):int (FullOpts)
; ============================================================
Unwind Info:+8 (+5.52%) : 18330.dasm - System.Number:TryUInt64ToBinaryStr[char](ulong,int,System.Span`1[char],byref):bool (FullOpts)
@@ -16,7 +16,7 @@
; V06 loc2 [V06 ] ( 2, 1 ) byref -> [rsp+0x20] must-init pinned
; V07 OutArgs [V07 ] ( 1, 1 ) struct (32) [rsp+0x00] do-not-enreg[XS] addr-exposed "OutgoingArgSpace" <UNNAMED>
; V08 tmp1 [V08,T10] ( 4, 3 ) int -> rax "Inline return value spill temp"
-; V09 tmp2 [V09,T07] ( 3, 6 ) int -> rax "Inlining Arg"
+; V09 tmp2 [V09,T07] ( 3, 6 ) int -> r10 "Inlining Arg"
;* V10 tmp3 [V10 ] ( 0, 0 ) struct (16) zero-ref ld-addr-op "Inlining Arg" <System.Span`1[char]>
; V11 tmp4 [V11,T02] ( 4, 25 ) int -> rdx "Inlining Arg"
; V12 tmp5 [V12,T03] ( 2, 16 ) int -> rdx "dup spill"
@@ -46,13 +46,14 @@ G_M315_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byr
cmovle edx, eax
xor eax, eax
lzcnt rax, rcx
- neg eax
- add eax, 64
- cmp edx, eax
+ mov r10d, 64
+ sub r10d, eax
+ cmp edx, r10d
+ mov eax, r10d
cmovge eax, edx
cmp eax, dword ptr [r8+0x08]
jg SHORT G_M315_IG10
- ;; size=33 bbWeight=1 PerfScore 8.00
+ ;; size=41 bbWeight=1 PerfScore 8.25
G_M315_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0300 {r8 r9}, byref, isz
mov dword ptr [r9], eax
mov r8, bword ptr [r8]
@@ -109,7 +110,7 @@ G_M315_IG11: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
ret
;; size=5 bbWeight=0.50 PerfScore 0.62
-; Total bytes of code 145, prolog size 11, PerfScore 34.62, instruction count 44, allocated bytes for code 145 (MethodHash=83b5fec4) for method System.Number:TryUInt64ToBinaryStr[char](ulong,int,System.Span`1[char],byref):bool (FullOpts)
+; Total bytes of code 153, prolog size 11, PerfScore 34.88, instruction count 45, allocated bytes for code 153 (MethodHash=83b5fec4) for method System.Number:TryUInt64ToBinaryStr[char](ulong,int,System.Span`1[char],byref):bool (FullOpts)
; ============================================================
Unwind Info:Details
| Collection | Contexts with diffs | Improvements | Regressions | Same size | Improvements (bytes) | Regressions (bytes) |
|---|---|---|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 325 | 57 | 73 | 195 | -263 | +382 |
| benchmarks.run.windows.x64.checked.mch | 168 | 38 | 60 | 70 | -152 | +279 |
| benchmarks.run_pgo.windows.x64.checked.mch | 663 | 113 | 302 | 248 | -195 | +1,350 |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 168 | 38 | 60 | 70 | -152 | +283 |
| coreclr_tests.run.windows.x64.checked.mch | 1,738 | 428 | 453 | 857 | -2,223 | +1,412 |
| libraries.crossgen2.windows.x64.checked.mch | 420 | 117 | 172 | 131 | -495 | +670 |
| libraries.pmi.windows.x64.checked.mch | 349 | 78 | 117 | 154 | -327 | +379 |
| libraries_tests.run.windows.x64.Release.mch | 6,604 | 1,140 | 1,959 | 3,505 | -5,432 | +10,649 |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 1,218 | 404 | 374 | 440 | -1,251 | +3,828 |
| realworld.run.windows.x64.checked.mch | 210 | 20 | 127 | 63 | -107 | +1,290 |
| smoke_tests.nativeaot.windows.x64.checked.mch | 248 | 92 | 90 | 66 | -314 | +307 |
| 12,111 | 2,525 | 3,787 | 5,799 | -10,911 | +20,829 |
| Collection | Contexts with diffs | Improvements | Regressions | Same PerfScore | Improvements (PerfScore) | Regressions (PerfScore) | PerfScore Overall in FullOpts |
|---|---|---|---|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 325 | 58 | 138 | 129 | -0.41% | +0.43% | +0.0011% |
| benchmarks.run.windows.x64.checked.mch | 168 | 67 | 75 | 26 | -0.39% | +0.26% | -0.0001% |
| benchmarks.run_pgo.windows.x64.checked.mch | 663 | 97 | 241 | 325 | -0.48% | +0.42% | +0.0013% |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 168 | 67 | 76 | 25 | -0.39% | +0.26% | -0.0001% |
| coreclr_tests.run.windows.x64.checked.mch | 1,738 | 468 | 591 | 679 | -0.31% | +0.39% | +0.0004% |
| libraries.crossgen2.windows.x64.checked.mch | 420 | 151 | 223 | 46 | -0.87% | +1.39% | +0.0006% |
| libraries.pmi.windows.x64.checked.mch | 349 | 127 | 194 | 28 | -0.76% | +0.76% | +0.0002% |
| libraries_tests.run.windows.x64.Release.mch | 6,604 | 1,055 | 2,432 | 3,117 | -0.25% | +0.26% | +0.0016% |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 1,218 | 754 | 335 | 129 | -0.48% | +0.45% | -0.0006% |
| realworld.run.windows.x64.checked.mch | 210 | 48 | 142 | 20 | -0.33% | +0.20% | +0.0004% |
| smoke_tests.nativeaot.windows.x64.checked.mch | 248 | 121 | 77 | 50 | -0.66% | +0.28% | -0.0017% |
| Collection | Diffed contexts | MinOpts | FullOpts | Missed, base | Missed, diff |
|---|---|---|---|---|---|
| aspnet2.run.windows.x64.checked.mch | 49,023 | 16,098 | 32,925 | 0 (0.00%) | 0 (0.00%) |
| benchmarks.run.windows.x64.checked.mch | 50,244 | 1,644 | 48,600 | 0 (0.00%) | 0 (0.00%) |
| benchmarks.run_pgo.windows.x64.checked.mch | 96,617 | 54,331 | 42,286 | 0 (0.00%) | 0 (0.00%) |
| benchmarks.run_pgo_optrepeat.windows.x64.checked.mch | 51,572 | 1,644 | 49,928 | 0 (0.00%) | 0 (0.00%) |
| coreclr_tests.run.windows.x64.checked.mch | 557,548 | 340,312 | 217,236 | 0 (0.00%) | 0 (0.00%) |
| libraries.crossgen2.windows.x64.checked.mch | 280,273 | 22 | 280,251 | 0 (0.00%) | 0 (0.00%) |
| libraries.pmi.windows.x64.checked.mch | 246,120 | 7 | 246,113 | 0 (0.00%) | 0 (0.00%) |
| libraries_tests.run.windows.x64.Release.mch | 766,369 | 535,378 | 230,991 | 0 (0.00%) | 0 (0.00%) |
| libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch | 380,613 | 23,780 | 356,833 | 0 (0.00%) | 0 (0.00%) |
| realworld.run.windows.x64.checked.mch | 29,522 | 40 | 29,482 | 0 (0.00%) | 0 (0.00%) |
| smoke_tests.nativeaot.windows.x64.checked.mch | 34,162 | 16 | 34,146 | 0 (0.00%) | 0 (0.00%) |
| 2,542,063 | 973,272 | 1,568,791 | 0 (0.00%) | 0 (0.00%) |