Skip to content

[APX] fix bugs in NDD code gen #115809

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

Ruihan-Yin
Copy link
Member

Fixes a few bugs when using APX new data destination feature, and improve the code gen a little when feature is on.

image

@github-actions github-actions bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 20, 2025
@dotnet-policy-service dotnet-policy-service bot added the community-contribution Indicates that the PR has been added by a community member label May 20, 2025
Copy link
Contributor

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch
See info in area-owners.md if you want to be subscribed.

@Ruihan-Yin
Copy link
Member Author

Ran asmdiffs locally with APX NDD on.
Diffs are based on 2,773,314 contexts (1,098,988 MinOpts, 1,674,326 FullOpts).

MISSED contexts: 42,231 (1.50%)

Base JIT options: JitBypassApxCheck=1;EnableApxNDD=1

Diff JIT options: JitBypassApxCheck=1;EnableApxNDD=1

Overall (-3,266 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
aspnet.run.windows.x64.checked.mch 70,449,055 -127 -0.56%
benchmarks.run.windows.x64.checked.mch 8,900,761 -43 -0.63%
benchmarks.run_pgo.windows.x64.checked.mch 55,596,054 -266 -0.53%
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch 8,897,840 -43 -0.63%
coreclr_tests.run.windows.x64.checked.mch 400,908,148 -555 -0.40%
libraries.crossgen2.windows.x64.checked.mch 38,573,492 -42 -1.05%
libraries.pmi.windows.x64.checked.mch 58,435,671 -218 -0.59%
libraries_tests.run.windows.x64.Release.mch 297,085,797 -1,430 -0.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 153,610,820 -352 -0.19%
realworld.run.windows.x64.checked.mch 11,749,723 -156 -0.43%
smoke_tests.nativeaot.windows.x64.checked.mch 5,078,993 -34 -2.02%
FullOpts (-3,266 bytes)
Collection Base size (bytes) Diff size (bytes) PerfScore in Diffs
aspnet.run.windows.x64.checked.mch 39,302,079 -127 -0.56%
benchmarks.run.windows.x64.checked.mch 8,900,292 -43 -0.63%
benchmarks.run_pgo.windows.x64.checked.mch 39,619,132 -266 -0.53%
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch 8,897,371 -43 -0.63%
coreclr_tests.run.windows.x64.checked.mch 120,444,817 -555 -0.40%
libraries.crossgen2.windows.x64.checked.mch 38,571,839 -42 -1.05%
libraries.pmi.windows.x64.checked.mch 58,322,884 -218 -0.59%
libraries_tests.run.windows.x64.Release.mch 101,184,350 -1,430 -0.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 142,923,686 -352 -0.19%
realworld.run.windows.x64.checked.mch 11,524,844 -156 -0.43%
smoke_tests.nativeaot.windows.x64.checked.mch 5,077,850 -34 -2.02%
Example diffs
aspnet.run.windows.x64.checked.mch
-3 (-4.48%) : 45180.dasm - System.Number+BigInteger:Compare(byref,byref):int (Tier1)
@@ -27,9 +27,8 @@ G_M22218_IG02:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx},
        ; byrRegs +[rcx rdx]
        mov      eax, dword ptr [rcx]
        sub      r8d, eax, dword ptr [rdx]
-       test     r8d, r8d
        jne      SHORT G_M22218_IG10
-						;; size=13 bbWeight=1 PerfScore 6.25
+						;; size=10 bbWeight=1 PerfScore 6.00
 G_M22218_IG03:        ; bbWeight=0.78, gcrefRegs=0000 {}, byrefRegs=0006 {rcx rdx}, byref, isz
        test     eax, eax
        je       SHORT G_M22218_IG08
@@ -72,7 +71,7 @@ G_M22218_IG11:        ; bbWeight=0.22, epilog, nogc, extend
        ret      
 						;; size=1 bbWeight=0.22 PerfScore 0.22
 
-; Total bytes of code 67, prolog size 0, PerfScore 15.92, instruction count 24, allocated bytes for code 67 (MethodHash=56e2a935) for method System.Number+BigInteger:Compare(byref,byref):int (Tier1)
+; Total bytes of code 64, prolog size 0, PerfScore 15.67, instruction count 23, allocated bytes for code 64 (MethodHash=56e2a935) for method System.Number+BigInteger:Compare(byref,byref):int (Tier1)
 ; ============================================================
 
 Unwind Info:
-6 (-2.07%) : 85469.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
@@ -61,10 +61,9 @@ G_M53248_IG06:        ; bbWeight=0.35, gcVars=0000000000000000 {}, gcrefRegs=000
 						;; size=37 bbWeight=0.35 PerfScore 2.56
 G_M53248_IG07:        ; bbWeight=0.12, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jge      SHORT G_M53248_IG04
+       jns      SHORT G_M53248_IG04
        jmp      SHORT G_M53248_IG10
-						;; size=14 bbWeight=0.12 PerfScore 0.78
+						;; size=11 bbWeight=0.12 PerfScore 0.75
 G_M53248_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        xor      rcx, rcx
@@ -123,8 +122,7 @@ G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M53248_IG11:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        ; gcrRegs +[rcx]
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      G_M53248_IG04
+       jns      G_M53248_IG04
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
@@ -147,7 +145,7 @@ G_M53248_IG11:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=61 bbWeight=0 PerfScore 0.00
+						;; size=58 bbWeight=0 PerfScore 0.00
 G_M53248_IG12:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -176,7 +174,7 @@ RWD00  	dd	G_M53248_IG03 - G_M53248_IG02
        	dd	G_M53248_IG11 - G_M53248_IG02
 
 
-; Total bytes of code 290, prolog size 5, PerfScore 13.90, instruction count 71, allocated bytes for code 290 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
+; Total bytes of code 284, prolog size 5, PerfScore 13.87, instruction count 69, allocated bytes for code 284 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-1.52%) : 96602.dasm - System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
@@ -26,9 +26,8 @@ G_M31101_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M31101_IG02:        ; bbWeight=1.00, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        sub      eax, edx, dword ptr [rcx+0x1C]
-       test     eax, eax
-       jl       SHORT G_M31101_IG05
-						;; size=11 bbWeight=1.00 PerfScore 4.25
+       js       SHORT G_M31101_IG05
+						;; size=9 bbWeight=1.00 PerfScore 4.00
 G_M31101_IG03:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      eax, dword ptr [rcx+0x18]
        jge      SHORT G_M31101_IG06
@@ -94,7 +93,7 @@ G_M31101_IG08:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 132, prolog size 5, PerfScore 19.50, instruction count 37, allocated bytes for code 132 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
+; Total bytes of code 130, prolog size 5, PerfScore 19.25, instruction count 36, allocated bytes for code 130 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.03%) : 168690.dasm - OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager:BuildDescriptors(OrchardCore.DisplayManagement.Descriptors.IShapeTableProvider,System.Collections.Generic.IEnumerable`1[OrchardCore.DisplayManagement.Descriptors.ShapeAlteration],System.Collections.Generic.Dictionary`2[System.String,OrchardCore.DisplayManagement.Descriptors.FeatureShapeDescriptor]) (Tier1-OSR)
@@ -1727,8 +1727,7 @@ G_M11229_IG105:        ; bbWeight=0.62, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}
 G_M11229_IG106:        ; bbWeight=0.60, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}, byrefRegs=0000 {}, byref
        mov      r12d, dword ptr [r14+0x08]
        add      ecx, r12d, dword ptr [r13+0x08]
-       test     ecx, ecx
-       jl       G_M11229_IG133
+       js       G_M11229_IG133
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -1759,7 +1758,7 @@ G_M11229_IG106:        ; bbWeight=0.60, gcrefRegs=E0C8 {rbx rsi rdi r13 r14 r15}
        ; byrRegs -[rcx rdx]
        ; gcr arg pop 0
        nop      
-						;; size=87 bbWeight=0.60 PerfScore 15.55
+						;; size=85 bbWeight=0.60 PerfScore 15.40
 G_M11229_IG107:        ; bbWeight=0.78, gcVars=000000000000000000000000000000000000080000402010 {V00 V02 V03 V217}, gcrefRegs=90C8 {rbx rsi rdi r12 r15}, byrefRegs=0000 {}, gcvars, byref
        ; GC ptr vars -{V234}
        test     r12, r12
@@ -3390,7 +3389,7 @@ G_M11229_IG259:        ; bbWeight=0.00, funclet epilog, nogc, extend
        ret      
 						;; size=5 bbWeight=0.00 PerfScore 0.00
 
-; Total bytes of code 6721, prolog size 96, PerfScore 654.73, instruction count 1474, allocated bytes for code 6721 (MethodHash=fa99d422) for method OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager:BuildDescriptors(OrchardCore.DisplayManagement.Descriptors.IShapeTableProvider,System.Collections.Generic.IEnumerable`1[OrchardCore.DisplayManagement.Descriptors.ShapeAlteration],System.Collections.Generic.Dictionary`2[System.String,OrchardCore.DisplayManagement.Descriptors.FeatureShapeDescriptor]) (Tier1-OSR)
+; Total bytes of code 6719, prolog size 96, PerfScore 654.58, instruction count 1473, allocated bytes for code 6719 (MethodHash=fa99d422) for method OrchardCore.DisplayManagement.Descriptors.DefaultShapeTableManager:BuildDescriptors(OrchardCore.DisplayManagement.Descriptors.IShapeTableProvider,System.Collections.Generic.IEnumerable`1[OrchardCore.DisplayManagement.Descriptors.ShapeAlteration],System.Collections.Generic.Dictionary`2[System.String,OrchardCore.DisplayManagement.Descriptors.FeatureShapeDescriptor]) (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-2 (-0.06%) : 115487.dasm - System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (Tier1-OSR)
@@ -825,12 +825,11 @@ G_M53260_IG50:        ; bbWeight=0.17, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
 						;; size=72 bbWeight=0.17 PerfScore 2.67
 G_M53260_IG51:        ; bbWeight=0.09, gcrefRegs=04C8 {rbx rsi rdi r10}, byrefRegs=1000 {r12}, byref, isz
        sub      edx, eax, dword ptr [r10+0x1C]
-       test     edx, edx
-       jl       G_M53260_IG63
+       js       G_M53260_IG63
        mov      r11d, dword ptr [r10+0x18]
        cmp      edx, r11d
        jle      SHORT G_M53260_IG58
-						;; size=24 bbWeight=0.09 PerfScore 0.66
+						;; size=22 bbWeight=0.09 PerfScore 0.63
 G_M53260_IG52:        ; bbWeight=0.09, gcrefRegs=04C8 {rbx rsi rdi r10}, byrefRegs=1000 {r12}, byref
        mov      edx, r8d
        sub      r11d, edx
@@ -1804,7 +1803,7 @@ RWD52  	dd	G_M53260_IG138 - G_M53260_IG02
        	dd	G_M53260_IG138 - G_M53260_IG02
 
 
-; Total bytes of code 3217, prolog size 93, PerfScore 587.74, instruction count 718, allocated bytes for code 3217 (MethodHash=76ae2ff3) for method System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (Tier1-OSR)
+; Total bytes of code 3215, prolog size 93, PerfScore 587.72, instruction count 717, allocated bytes for code 3215 (MethodHash=76ae2ff3) for method System.Data.Common.DbConnectionOptions:GetKeyValuePair(System.String,int,System.Text.StringBuilder,ubyte,byref,byref):int (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-2 (-0.10%) : 34003.dasm - System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
@@ -725,9 +725,8 @@ G_M40364_IG63:        ; bbWeight=4.36, gcrefRegs=000C {rdx rbx}, byrefRegs=40A0
 G_M40364_IG64:        ; bbWeight=3.93, gcVars=00000000000000000000000000000012 {V05 V12}, gcrefRegs=0408 {rbx r10}, byrefRegs=40A0 {rbp rdi r14}, gcvars, byref, isz
        ; gcrRegs -[rdx]
        and      ecx, esi, dword ptr [r10+0x10]
-       test     ecx, ecx
        jle      SHORT G_M40364_IG59
-						;; size=11 bbWeight=3.93 PerfScore 16.70
+						;; size=9 bbWeight=3.93 PerfScore 15.71
 G_M40364_IG65:        ; bbWeight=2.04, gcrefRegs=0408 {rbx r10}, byrefRegs=40A0 {rbp rdi r14}, byref
        mov      rcx, gword ptr [r10+0x08]
        ; gcrRegs +[rcx]
@@ -968,7 +967,7 @@ G_M40364_IG90:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1966, prolog size 48, PerfScore 269.53, instruction count 434, allocated bytes for code 1966 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
+; Total bytes of code 1964, prolog size 48, PerfScore 268.55, instruction count 433, allocated bytes for code 1964 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
benchmarks.run.windows.x64.checked.mch
-3 (-2.63%) : 15725.dasm - V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
@@ -41,9 +41,8 @@ G_M36520_IG03:        ; bbWeight=0.50, gcrefRegs=0107 {rax rcx rdx r8}, byrefReg
        mov      ecx, dword ptr [rcx+0x10]
        ; gcrRegs -[rcx]
        sub      r10d, ecx, dword ptr [rdx+0x10]
-       test     r10d, r10d
        jne      SHORT G_M36520_IG06
-						;; size=15 bbWeight=0.50 PerfScore 3.12
+						;; size=12 bbWeight=0.50 PerfScore 3.00
 G_M36520_IG04:        ; bbWeight=4, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        dec      ecx
@@ -94,7 +93,7 @@ G_M36520_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 4, PerfScore 74.00, instruction count 36, allocated bytes for code 114 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
+; Total bytes of code 111, prolog size 4, PerfScore 73.88, instruction count 35, allocated bytes for code 111 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-2.10%) : 946.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
@@ -45,16 +45,14 @@ G_M53248_IG03:        ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
 						;; size=27 bbWeight=0.75 PerfScore 4.50
 G_M53248_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      G_M53248_IG12
-						;; size=17 bbWeight=0.50 PerfScore 3.12
+						;; size=14 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      SHORT G_M53248_IG11
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=11 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG06:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        mov      rax, rdx
        test     rax, rax
@@ -174,7 +172,7 @@ RWD00  	dd	G_M53248_IG06 - G_M53248_IG02
        	dd	G_M53248_IG04 - G_M53248_IG02
 
 
-; Total bytes of code 286, prolog size 5, PerfScore 22.50, instruction count 70, allocated bytes for code 286 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
+; Total bytes of code 280, prolog size 5, PerfScore 22.25, instruction count 68, allocated bytes for code 280 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.63%) : 10211.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
@@ -34,9 +34,8 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edi, esi, dword ptr [rbx+0x20]
-       test     edi, edi
-       jl       SHORT G_M4769_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+       js       SHORT G_M4769_IG04
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M4769_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      edi, dword ptr [rbx+0x2C]
        jle      SHORT G_M4769_IG07
@@ -94,7 +93,7 @@ G_M4769_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 123, prolog size 7, PerfScore 30.12, instruction count 45, allocated bytes for code 123 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
+; Total bytes of code 121, prolog size 7, PerfScore 29.88, instruction count 44, allocated bytes for code 121 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.13%) : 6935.dasm - System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
@@ -283,9 +283,8 @@ G_M40364_IG11:        ; bbWeight=4, gcVars=00000000000000000000000000200000 {V12
        test     r8, r8
        je       G_M40364_IG40
        and      ecx, edi, dword ptr [r8+0x10]
-       test     ecx, ecx
        jle      G_M40364_IG37
-						;; size=47 bbWeight=4 PerfScore 51.00
+						;; size=45 bbWeight=4 PerfScore 50.00
 G_M40364_IG12:        ; bbWeight=2, gcVars=00000000000000000000000000200001 {V05 V12}, gcrefRegs=0140 {rsi r8}, byrefRegs=4028 {rbx rbp r14}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rcx, gword ptr [r8+0x08]
@@ -758,7 +757,7 @@ G_M40364_IG51:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1525, prolog size 60, PerfScore 623.21, instruction count 368, allocated bytes for code 1525 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 1523, prolog size 60, PerfScore 622.21, instruction count 367, allocated bytes for code 1523 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.27%) : 2633.dasm - System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
@@ -215,8 +215,7 @@ G_M36988_IG23:        ; bbWeight=64, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
 						;; size=7 bbWeight=64 PerfScore 256.00
 G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        sub      ecx, edi, dword ptr [r14+0x58]
-       test     ecx, ecx
-       jl       SHORT G_M36988_IG27
+       js       SHORT G_M36988_IG27
        mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Threading.RegisteredWaitHandle:RequestCallback():this]
@@ -233,7 +232,7 @@ G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        jmp      SHORT G_M36988_IG26
-						;; size=44 bbWeight=32 PerfScore 552.00
+						;; size=42 bbWeight=32 PerfScore 544.00
 G_M36988_IG25:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r14+0x54], -1
        je       SHORT G_M36988_IG26
@@ -412,7 +411,7 @@ G_M36988_IG39:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 747, prolog size 22, PerfScore 4974.12, instruction count 191, allocated bytes for code 747 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
+; Total bytes of code 745, prolog size 22, PerfScore 4966.12, instruction count 190, allocated bytes for code 745 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.39%) : 12406.dasm - System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
@@ -114,9 +114,8 @@ G_M20344_IG04:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp},
 						;; size=26 bbWeight=2 PerfScore 7.00
 G_M20344_IG05:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref
        sub      ecx, edi, dword ptr [rsi+0x1C]
-       test     ecx, ecx
-       jl       G_M20344_IG15
-						;; size=15 bbWeight=4 PerfScore 17.00
+       js       G_M20344_IG15
+						;; size=13 bbWeight=4 PerfScore 16.00
 G_M20344_IG06:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref, isz
        mov      edx, dword ptr [rsi+0x18]
        cmp      ecx, edx
@@ -304,7 +303,7 @@ G_M20344_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 514, prolog size 24, PerfScore 160.62, instruction count 137, allocated bytes for code 514 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
+; Total bytes of code 512, prolog size 24, PerfScore 159.62, instruction count 136, allocated bytes for code 512 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-10 (-3.51%) : 120193.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
@@ -44,9 +44,8 @@ G_M53248_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
 						;; size=43 bbWeight=1 PerfScore 11.25
 G_M53248_IG03:        ; bbWeight=0.60, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jl       SHORT G_M53248_IG09
-						;; size=12 bbWeight=0.60 PerfScore 2.55
+       js       SHORT G_M53248_IG09
+						;; size=9 bbWeight=0.60 PerfScore 2.40
 G_M53248_IG04:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      qword ptr [rcx+0x38], rax
 						;; size=4 bbWeight=1 PerfScore 1.00
@@ -116,11 +115,10 @@ G_M53248_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
-G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      G_M53248_IG04
+       jns      SHORT G_M53248_IG04
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
@@ -143,7 +141,7 @@ G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=61 bbWeight=0 PerfScore 0.00
+						;; size=54 bbWeight=0 PerfScore 0.00
 G_M53248_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -172,7 +170,7 @@ RWD00  	dd	G_M53248_IG06 - G_M53248_IG02
        	dd	G_M53248_IG10 - G_M53248_IG02
 
 
-; Total bytes of code 285, prolog size 5, PerfScore 19.20, instruction count 69, allocated bytes for code 285 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
+; Total bytes of code 275, prolog size 5, PerfScore 19.05, instruction count 67, allocated bytes for code 275 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-6 (-1.82%) : 134528.dasm - System.String:Concat(System.String,System.String):System.String (Tier1)
@@ -80,18 +80,17 @@ G_M34819_IG06:        ; bbWeight=0.57, epilog, nogc, extend
        pop      r14
        ret      
 						;; size=11 bbWeight=0.57 PerfScore 2.15
-G_M34819_IG07:        ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref
+G_M34819_IG07:        ; bbWeight=0.28, gcVars=0000000000000000 {}, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, gcvars, byref, isz
        ; gcrRegs -[rax] +[rsi]
        test     rbx, rbx
-       je       G_M34819_IG13
-						;; size=9 bbWeight=0.28 PerfScore 0.35
+       je       SHORT G_M34819_IG13
+						;; size=5 bbWeight=0.28 PerfScore 0.35
 G_M34819_IG08:        ; bbWeight=0.23, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [rbx+0x08], 0
        je       SHORT G_M34819_IG13
        mov      ebp, edi
        add      ecx, ebp, dword ptr [rbx+0x08]
-       test     ecx, ecx
-       jl       G_M34819_IG17
+       js       G_M34819_IG17
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -99,7 +98,7 @@ G_M34819_IG08:        ; bbWeight=0.23, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        ; gcrRegs +[r14]
        test     r14, r14
        je       G_M34819_IG18
-						;; size=40 bbWeight=0.23 PerfScore 2.48
+						;; size=38 bbWeight=0.23 PerfScore 2.42
 G_M34819_IG09:        ; bbWeight=0.23, gcrefRegs=4048 {rbx rsi r14}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rax]
        cmp      dword ptr [r14+0x08], edi
@@ -213,7 +212,7 @@ G_M34819_IG20:        ; bbWeight=0, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
        jmp      G_M34819_IG11
 						;; size=31 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 330, prolog size 10, PerfScore 24.34, instruction count 93, allocated bytes for code 330 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (Tier1)
+; Total bytes of code 324, prolog size 10, PerfScore 24.29, instruction count 92, allocated bytes for code 324 (MethodHash=f9bb77fc) for method System.String:Concat(System.String,System.String):System.String (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.93%) : 139854.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
@@ -36,9 +36,8 @@ G_M27413_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M27413_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movzx    rsi, dl
        or       cl, sil, byte  ptr [rbx+0x1D]
-       test     cl, cl
        jne      SHORT G_M27413_IG04
-						;; size=15 bbWeight=1 PerfScore 4.50
+						;; size=13 bbWeight=1 PerfScore 4.25
 G_M27413_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E
        ; gcrRegs +[rcx]
@@ -153,7 +152,7 @@ G_M27413_IG17:        ; bbWeight=0, epilog, nogc, extend
        jmp      <unknown method>
 						;; size=13 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 214, prolog size 11, PerfScore 44.50, instruction count 74, allocated bytes for code 214 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
+; Total bytes of code 212, prolog size 11, PerfScore 44.25, instruction count 73, allocated bytes for code 212 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.15%) : 27834.dasm - System.Numerics.Tests.Perf_BigInteger+d__0:MoveNext():ubyte:this (Tier1)
@@ -343,9 +343,8 @@ G_M31988_IG18:        ; bbWeight=0.14, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0
 G_M31988_IG19:        ; bbWeight=0.11, gcrefRegs=00C8 {rbx rsi rdi}, byrefRegs=0000 {}, byref, isz
        mov      ebp, dword ptr [rsi+0x08]
        add      ecx, ebp, dword ptr [rdi+0x08]
-       test     ecx, ecx
-       jge      SHORT G_M31988_IG21
-						;; size=14 bbWeight=0.11 PerfScore 0.68
+       jns      SHORT G_M31988_IG21
+						;; size=12 bbWeight=0.11 PerfScore 0.65
 G_M31988_IG20:        ; bbWeight=0.09, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rbx rsi rdi]
        call     [System.ThrowHelper:ThrowOutOfMemoryException_StringTooLong()]
@@ -728,7 +727,7 @@ RWD00  	dd	G_M31988_IG35 - G_M31988_IG02
        	dd	G_M31988_IG46 - G_M31988_IG02
 
 
-; Total bytes of code 1314, prolog size 44, PerfScore 70.60, instruction count 282, allocated bytes for code 1314 (MethodHash=5a3d830b) for method System.Numerics.Tests.Perf_BigInteger+<NumberStrings>d__0:MoveNext():ubyte:this (Tier1)
+; Total bytes of code 1312, prolog size 44, PerfScore 70.57, instruction count 281, allocated bytes for code 1312 (MethodHash=5a3d830b) for method System.Numerics.Tests.Perf_BigInteger+<NumberStrings>d__0:MoveNext():ubyte:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.48%) : 106177.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
@@ -56,9 +56,8 @@ G_M27413_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        mov      qword ptr [rbp-0x48], rcx
        movzx    rsi, sil
        or       cl, sil, byte  ptr [rbx+0x1D]
-       test     cl, cl
        je       G_M27413_IG21
-						;; size=45 bbWeight=1 PerfScore 8.75
+						;; size=43 bbWeight=1 PerfScore 8.50
 G_M27413_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      r14d, dword ptr [rbx+0x18]
        test     esi, esi
@@ -222,7 +221,7 @@ G_M27413_IG24:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jmp      SHORT G_M27413_IG20
 						;; size=15 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 418, prolog size 32, PerfScore 56.12, instruction count 115, allocated bytes for code 418 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
+; Total bytes of code 416, prolog size 32, PerfScore 55.87, instruction count 114, allocated bytes for code 416 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.58%) : 99384.dasm - System.IO.MemoryStream:Write(System.ReadOnlySpan`1[ubyte]):this (Tier1)
@@ -64,11 +64,10 @@ G_M23863_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0004 {rdx},
        test     ecx, ecx
        je       G_M23863_IG08
        add      ebp, edi, dword ptr [rbx+0x1C]
-       test     ebp, ebp
-       jl       G_M23863_IG09
+       js       G_M23863_IG09
        cmp      ebp, dword ptr [rbx+0x20]
        jg       G_M23863_IG10
-						;; size=67 bbWeight=1 PerfScore 23.75
+						;; size=65 bbWeight=1 PerfScore 23.50
 G_M23863_IG03:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref
        ; byrRegs -[rdx]
        mov      r8, gword ptr [rbx+0x10]
@@ -211,7 +210,7 @@ G_M23863_IG15:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 345, prolog size 17, PerfScore 50.25, instruction count 97, allocated bytes for code 345 (MethodHash=f900a2c8) for method System.IO.MemoryStream:Write(System.ReadOnlySpan`1[ubyte]):this (Tier1)
+; Total bytes of code 343, prolog size 17, PerfScore 50.00, instruction count 96, allocated bytes for code 343 (MethodHash=f900a2c8) for method System.IO.MemoryStream:Write(System.ReadOnlySpan`1[ubyte]):this (Tier1)
 ; ============================================================
 
 Unwind Info:
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch
-3 (-2.63%) : 15658.dasm - V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
@@ -41,9 +41,8 @@ G_M36520_IG03:        ; bbWeight=0.50, gcrefRegs=0107 {rax rcx rdx r8}, byrefReg
        mov      ecx, dword ptr [rcx+0x10]
        ; gcrRegs -[rcx]
        sub      r10d, ecx, dword ptr [rdx+0x10]
-       test     r10d, r10d
        jne      SHORT G_M36520_IG06
-						;; size=15 bbWeight=0.50 PerfScore 3.12
+						;; size=12 bbWeight=0.50 PerfScore 3.00
 G_M36520_IG04:        ; bbWeight=4, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        dec      ecx
@@ -94,7 +93,7 @@ G_M36520_IG11:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 4, PerfScore 74.00, instruction count 36, allocated bytes for code 114 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
+; Total bytes of code 111, prolog size 4, PerfScore 73.88, instruction count 35, allocated bytes for code 111 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-2.10%) : 2141.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
@@ -45,16 +45,14 @@ G_M53248_IG03:        ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
 						;; size=27 bbWeight=0.75 PerfScore 4.50
 G_M53248_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      G_M53248_IG12
-						;; size=17 bbWeight=0.50 PerfScore 3.12
+						;; size=14 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      SHORT G_M53248_IG11
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=11 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG06:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        mov      rax, rdx
        test     rax, rax
@@ -174,7 +172,7 @@ RWD00  	dd	G_M53248_IG06 - G_M53248_IG02
        	dd	G_M53248_IG04 - G_M53248_IG02
 
 
-; Total bytes of code 286, prolog size 5, PerfScore 22.50, instruction count 70, allocated bytes for code 286 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
+; Total bytes of code 280, prolog size 5, PerfScore 22.25, instruction count 68, allocated bytes for code 280 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.63%) : 11012.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
@@ -34,9 +34,8 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edi, esi, dword ptr [rbx+0x20]
-       test     edi, edi
-       jl       SHORT G_M4769_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+       js       SHORT G_M4769_IG04
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M4769_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      edi, dword ptr [rbx+0x2C]
        jle      SHORT G_M4769_IG07
@@ -94,7 +93,7 @@ G_M4769_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 123, prolog size 7, PerfScore 30.12, instruction count 45, allocated bytes for code 123 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
+; Total bytes of code 121, prolog size 7, PerfScore 29.88, instruction count 44, allocated bytes for code 121 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.13%) : 3175.dasm - System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
@@ -283,9 +283,8 @@ G_M40364_IG11:        ; bbWeight=4, gcVars=00000000000000000000000000200000 {V12
        test     r8, r8
        je       G_M40364_IG40
        and      ecx, edi, dword ptr [r8+0x10]
-       test     ecx, ecx
        jle      G_M40364_IG37
-						;; size=47 bbWeight=4 PerfScore 51.00
+						;; size=45 bbWeight=4 PerfScore 50.00
 G_M40364_IG12:        ; bbWeight=2, gcVars=00000000000000000000000000200001 {V05 V12}, gcrefRegs=0140 {rsi r8}, byrefRegs=4028 {rbx rbp r14}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rcx, gword ptr [r8+0x08]
@@ -758,7 +757,7 @@ G_M40364_IG51:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1525, prolog size 60, PerfScore 623.21, instruction count 368, allocated bytes for code 1525 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 1523, prolog size 60, PerfScore 622.21, instruction count 367, allocated bytes for code 1523 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.27%) : 7010.dasm - System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
@@ -215,8 +215,7 @@ G_M36988_IG23:        ; bbWeight=64, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
 						;; size=7 bbWeight=64 PerfScore 256.00
 G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        sub      ecx, edi, dword ptr [r14+0x58]
-       test     ecx, ecx
-       jl       SHORT G_M36988_IG27
+       js       SHORT G_M36988_IG27
        mov      rcx, r14
        ; gcrRegs +[rcx]
        call     [System.Threading.RegisteredWaitHandle:RequestCallback():this]
@@ -233,7 +232,7 @@ G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
        jmp      SHORT G_M36988_IG26
-						;; size=44 bbWeight=32 PerfScore 552.00
+						;; size=42 bbWeight=32 PerfScore 544.00
 G_M36988_IG25:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        cmp      dword ptr [r14+0x54], -1
        je       SHORT G_M36988_IG26
@@ -412,7 +411,7 @@ G_M36988_IG39:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 747, prolog size 22, PerfScore 4974.12, instruction count 191, allocated bytes for code 747 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
+; Total bytes of code 745, prolog size 22, PerfScore 4966.12, instruction count 190, allocated bytes for code 745 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.39%) : 12888.dasm - System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
@@ -114,9 +114,8 @@ G_M20344_IG04:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp},
 						;; size=26 bbWeight=2 PerfScore 7.00
 G_M20344_IG05:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref
        sub      ecx, edi, dword ptr [rsi+0x1C]
-       test     ecx, ecx
-       jl       G_M20344_IG15
-						;; size=15 bbWeight=4 PerfScore 17.00
+       js       G_M20344_IG15
+						;; size=13 bbWeight=4 PerfScore 16.00
 G_M20344_IG06:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref, isz
        mov      edx, dword ptr [rsi+0x18]
        cmp      ecx, edx
@@ -304,7 +303,7 @@ G_M20344_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 514, prolog size 24, PerfScore 160.62, instruction count 137, allocated bytes for code 514 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
+; Total bytes of code 512, prolog size 24, PerfScore 159.62, instruction count 136, allocated bytes for code 512 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
coreclr_tests.run.windows.x64.checked.mch
-10 (-3.53%) : 512967.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
@@ -90,8 +90,7 @@ G_M53248_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
 G_M53248_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jge      SHORT G_M53248_IG04
+       jns      SHORT G_M53248_IG04
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
@@ -114,12 +113,11 @@ G_M53248_IG08:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=57 bbWeight=0 PerfScore 0.00
-G_M53248_IG09:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+						;; size=54 bbWeight=0 PerfScore 0.00
+G_M53248_IG09:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      G_M53248_IG04
+       jns      SHORT G_M53248_IG04
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
@@ -142,7 +140,7 @@ G_M53248_IG09:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=61 bbWeight=0 PerfScore 0.00
+						;; size=54 bbWeight=0 PerfScore 0.00
 G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -171,7 +169,7 @@ RWD00  	dd	G_M53248_IG03 - G_M53248_IG02
        	dd	G_M53248_IG09 - G_M53248_IG02
 
 
-; Total bytes of code 283, prolog size 5, PerfScore 16.75, instruction count 68, allocated bytes for code 283 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
+; Total bytes of code 273, prolog size 5, PerfScore 16.75, instruction count 66, allocated bytes for code 273 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-3 (-2.63%) : 216678.dasm - V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
@@ -41,9 +41,8 @@ G_M36520_IG03:        ; bbWeight=0.50, gcrefRegs=0107 {rax rcx rdx r8}, byrefReg
        mov      ecx, dword ptr [rcx+0x10]
        ; gcrRegs -[rcx]
        sub      r10d, ecx, dword ptr [rdx+0x10]
-       test     r10d, r10d
        jne      SHORT G_M36520_IG06
-						;; size=15 bbWeight=0.50 PerfScore 3.12
+						;; size=12 bbWeight=0.50 PerfScore 3.00
 G_M36520_IG04:        ; bbWeight=4, gcrefRegs=0101 {rax r8}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rdx]
        dec      ecx
@@ -94,7 +93,7 @@ G_M36520_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 114, prolog size 4, PerfScore 72.38, instruction count 36, allocated bytes for code 114 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
+; Total bytes of code 111, prolog size 4, PerfScore 72.25, instruction count 35, allocated bytes for code 111 (MethodHash=f4147157) for method V8.Crypto.BigInteger:compareTo(V8.Crypto.BigInteger):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.63%) : 242762.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
@@ -34,9 +34,8 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edi, esi, dword ptr [rbx+0x20]
-       test     edi, edi
-       jl       SHORT G_M4769_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+       js       SHORT G_M4769_IG04
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M4769_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      edi, dword ptr [rbx+0x2C]
        jle      SHORT G_M4769_IG07
@@ -94,7 +93,7 @@ G_M4769_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 123, prolog size 7, PerfScore 30.12, instruction count 45, allocated bytes for code 123 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
+; Total bytes of code 121, prolog size 7, PerfScore 29.88, instruction count 44, allocated bytes for code 121 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.10%) : 497356.dasm - System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
@@ -664,9 +664,8 @@ G_M40364_IG55:        ; bbWeight=4.36, gcrefRegs=000C {rdx rbx}, byrefRegs=4060
 G_M40364_IG56:        ; bbWeight=3.93, gcVars=00000000000000000000000000000022 {V05 V12}, gcrefRegs=0408 {rbx r10}, byrefRegs=4060 {rbp rsi r14}, gcvars, byref, isz
        ; gcrRegs -[rdx]
        and      ecx, edi, dword ptr [r10+0x10]
-       test     ecx, ecx
        jle      SHORT G_M40364_IG51
-						;; size=11 bbWeight=3.93 PerfScore 16.70
+						;; size=9 bbWeight=3.93 PerfScore 15.71
 G_M40364_IG57:        ; bbWeight=2.04, gcrefRegs=0408 {rbx r10}, byrefRegs=4060 {rbp rsi r14}, byref
        mov      rcx, gword ptr [r10+0x08]
        ; gcrRegs +[rcx]
@@ -1028,7 +1027,7 @@ G_M40364_IG100:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2090, prolog size 48, PerfScore 281.26, instruction count 454, allocated bytes for code 2090 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
+; Total bytes of code 2088, prolog size 48, PerfScore 280.28, instruction count 453, allocated bytes for code 2088 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-0.20%) : 614819.dasm - System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (Instrumented Tier1)
@@ -303,9 +303,8 @@ G_M36988_IG38:        ; bbWeight=3, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {},
 						;; size=11 bbWeight=3 PerfScore 12.00
 G_M36988_IG39:        ; bbWeight=1.50, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        sub      ecx, edi, dword ptr [r14+0x58]
-       test     ecx, ecx
-       jge      SHORT G_M36988_IG41
-						;; size=11 bbWeight=1.50 PerfScore 6.38
+       jns      SHORT G_M36988_IG41
+						;; size=9 bbWeight=1.50 PerfScore 6.00
 G_M36988_IG40:        ; bbWeight=0.75, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[r14]
        mov      rcx, 0xD1FFAB1E
@@ -501,7 +500,7 @@ G_M36988_IG55:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1008, prolog size 24, PerfScore 916.13, instruction count 228, allocated bytes for code 1008 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (Instrumented Tier1)
+; Total bytes of code 1006, prolog size 24, PerfScore 915.75, instruction count 227, allocated bytes for code 1006 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (Instrumented Tier1)
 ; ============================================================
 
 Unwind Info:
-4 (-0.31%) : 250379.dasm - Test_10w5d.testout1:Func_0_2_6_4_1():double (FullOpts)
@@ -341,9 +341,8 @@ G_M44983_IG03:        ; bbWeight=1, extend
        jbe      G_M44983_IG21
        sub      edx, esi, dword ptr [rcx+0x20]
        ; gcrRegs -[rdx]
-       test     edx, edx
-       jl       G_M44983_IG12
-						;; size=169 bbWeight=1 PerfScore 40.75
+       js       G_M44983_IG12
+						;; size=167 bbWeight=1 PerfScore 40.50
 G_M44983_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        xor      ecx, ecx
@@ -429,9 +428,8 @@ G_M44983_IG08:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        cmp      dword ptr [rcx+0x08], 4
        jbe      G_M44983_IG21
        sub      edx, esi, dword ptr [rcx+0x20]
-       test     edx, edx
-       jl       G_M44983_IG20
-						;; size=165 bbWeight=0.50 PerfScore 18.38
+       js       G_M44983_IG20
+						;; size=163 bbWeight=0.50 PerfScore 18.25
 G_M44983_IG09:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcrRegs -[rcx]
        xor      ecx, ecx
@@ -568,7 +566,7 @@ G_M44983_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1299, prolog size 44, PerfScore 233.55, instruction count 255, allocated bytes for code 1299 (MethodHash=33be5048) for method Test_10w5d.testout1:Func_0_2_6_4_1():double (FullOpts)
+; Total bytes of code 1295, prolog size 44, PerfScore 233.17, instruction count 253, allocated bytes for code 1295 (MethodHash=33be5048) for method Test_10w5d.testout1:Func_0_2_6_4_1():double (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries.crossgen2.windows.x64.checked.mch
-2 (-7.69%) : 209823.dasm - Internal.TypeSystem.TypeWithRepeatedFields:ComputeTypeFlags(int):int:this (FullOpts)
@@ -24,9 +24,8 @@ G_M53842_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs +[rcx]
        mov      rcx, gword ptr [rcx+0x58]
        and      eax, edx, dword ptr [rcx+0x20]
-       test     eax, eax
        jne      SHORT G_M53842_IG05
-						;; size=15 bbWeight=1 PerfScore 6.25
+						;; size=13 bbWeight=1 PerfScore 6.00
 G_M53842_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        lea      rax, [(reloc)]      ; function address
 						;; size=7 bbWeight=0.50 PerfScore 0.25
@@ -38,7 +37,7 @@ G_M53842_IG05:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 26, prolog size 0, PerfScore 8.00, instruction count 7, allocated bytes for code 26 (MethodHash=4d732dad) for method Internal.TypeSystem.TypeWithRepeatedFields:ComputeTypeFlags(int):int:this (FullOpts)
+; Total bytes of code 24, prolog size 0, PerfScore 7.75, instruction count 6, allocated bytes for code 24 (MethodHash=4d732dad) for method Internal.TypeSystem.TypeWithRepeatedFields:ComputeTypeFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-3.80%) : 210148.dasm - Internal.TypeSystem.RuntimeDeterminedType:ComputeTypeFlags(int):int:this (FullOpts)
@@ -44,14 +44,13 @@ G_M19490_IG03:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      rcx, gword ptr [rsi+0x48]
        ; gcrRegs +[rcx]
        and      edi, ebx, dword ptr [rcx+0x20]
-       test     edi, edi
        jne      SHORT G_M19490_IG04
        mov      edx, ebx
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M19490_IG05
-						;; size=25 bbWeight=0.50 PerfScore 5.75
+						;; size=23 bbWeight=0.50 PerfScore 5.62
 G_M19490_IG04:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      eax, edi
 						;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -66,14 +65,13 @@ G_M19490_IG07:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        mov      rcx, gword ptr [rsi+0x48]
        ; gcrRegs +[rcx]
        and      ebp, ebx, dword ptr [rcx+0x20]
-       test     ebp, ebp
        jne      SHORT G_M19490_IG08
        mov      edx, ebx
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M19490_IG09
-						;; size=25 bbWeight=0.50 PerfScore 5.75
+						;; size=23 bbWeight=0.50 PerfScore 5.62
 G_M19490_IG08:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {}, byref
        mov      eax, ebp
 						;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -89,14 +87,13 @@ G_M19490_IG11:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
        ; gcrRegs +[rcx]
        and      esi, ebx, dword ptr [rcx+0x20]
        ; gcrRegs -[rsi]
-       test     esi, esi
        jne      SHORT G_M19490_IG12
        mov      edx, ebx
        call     [<unknown method>]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
        jmp      SHORT G_M19490_IG13
-						;; size=25 bbWeight=0.50 PerfScore 5.75
+						;; size=23 bbWeight=0.50 PerfScore 5.62
 G_M19490_IG12:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      eax, esi
 						;; size=2 bbWeight=0.50 PerfScore 0.12
@@ -124,7 +121,7 @@ G_M19490_IG15:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=9 bbWeight=1 PerfScore 3.25
 
-; Total bytes of code 158, prolog size 8, PerfScore 38.75, instruction count 54, allocated bytes for code 158 (MethodHash=e7adb3dd) for method Internal.TypeSystem.RuntimeDeterminedType:ComputeTypeFlags(int):int:this (FullOpts)
+; Total bytes of code 152, prolog size 8, PerfScore 38.38, instruction count 51, allocated bytes for code 152 (MethodHash=e7adb3dd) for method Internal.TypeSystem.RuntimeDeterminedType:ComputeTypeFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-2.50%) : 226611.dasm - System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
@@ -29,8 +29,7 @@ G_M15541_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M15541_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edx, esi, dword ptr [rbx+0x24]
-       test     edx, edx
-       jge      SHORT G_M15541_IG04
+       jns      SHORT G_M15541_IG04
        cmp      byte  ptr [rbx+0x29], 0
        je       SHORT G_M15541_IG04
        mov      rdx, gword ptr [rbx+0x10]
@@ -40,7 +39,7 @@ G_M15541_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     [System.Configuration.XmlUtilWriter:RestoreStreamCheckpoint(System.Object):this]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-						;; size=30 bbWeight=0.50 PerfScore 6.75
+						;; size=28 bbWeight=0.50 PerfScore 6.62
 G_M15541_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        sub      edx, esi, dword ptr [rbx+0x24]
        mov      rcx, rbx
@@ -64,7 +63,7 @@ G_M15541_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 80, prolog size 11, PerfScore 15.50, instruction count 27, allocated bytes for code 80 (MethodHash=882fc34a) for method System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
+; Total bytes of code 78, prolog size 11, PerfScore 15.38, instruction count 26, allocated bytes for code 78 (MethodHash=882fc34a) for method System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.15%) : 26332.dasm - System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
@@ -251,9 +251,8 @@ G_M40364_IG08:        ; bbWeight=4, gcVars=0000000000100000 {V12}, gcrefRegs=000
        test     r10, r10
        je       G_M40364_IG37
        and      ecx, edi, dword ptr [r10+0x10]
-       test     ecx, ecx
        jle      G_M40364_IG34
-						;; size=47 bbWeight=4 PerfScore 51.00
+						;; size=45 bbWeight=4 PerfScore 50.00
 G_M40364_IG09:        ; bbWeight=2, gcVars=0000000000100001 {V05 V12}, gcrefRegs=0408 {rbx r10}, byrefRegs=4060 {rbp rsi r14}, gcvars, byref
        ; gcrRegs -[rdx]
        mov      rcx, gword ptr [r10+0x08]
@@ -683,7 +682,7 @@ G_M40364_IG46:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1334, prolog size 58, PerfScore 638.46, instruction count 333, allocated bytes for code 1334 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 1332, prolog size 58, PerfScore 637.46, instruction count 332, allocated bytes for code 1332 (MethodHash=62976253) for method System.Globalization.DateTimeFormatInfo:Tokenize(int,byref,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.36%) : 26358.dasm - System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
@@ -227,8 +227,7 @@ G_M36988_IG23:        ; bbWeight=64, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
 						;; size=7 bbWeight=64 PerfScore 256.00
 G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}, byref, isz
        sub      ecx, edi, dword ptr [r14+0x58]
-       test     ecx, ecx
-       jl       SHORT G_M36988_IG25
+       js       SHORT G_M36988_IG25
        mov      rcx, rbx
        ; gcrRegs +[rcx]
        mov      rdx, r14
@@ -237,7 +236,7 @@ G_M36988_IG24:        ; bbWeight=32, gcrefRegs=4008 {rbx r14}, byrefRegs=0000 {}
        call     [System.Threading.PortableThreadPool+WaitThread:QueueWaitCompletion(System.Threading.RegisteredWaitHandle,ubyte):this]
        ; gcrRegs -[rcx rdx r14]
        ; gcr arg pop 0
-						;; size=29 bbWeight=32 PerfScore 256.00
+						;; size=27 bbWeight=32 PerfScore 248.00
 G_M36988_IG25:        ; bbWeight=64, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        inc      ebp
        cmp      ebp, esi
@@ -346,7 +345,7 @@ G_M36988_IG35:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=7 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 562, prolog size 22, PerfScore 4745.62, instruction count 160, allocated bytes for code 562 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
+; Total bytes of code 560, prolog size 22, PerfScore 4737.62, instruction count 159, allocated bytes for code 560 (MethodHash=95a76f83) for method System.Threading.PortableThreadPool+WaitThread:WaitThreadStart():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.36%) : 82073.dasm - Microsoft.CodeAnalysis.VisualBasic.SymbolDisplayVisitor:AddTypeParameterConstraints(Microsoft.CodeAnalysis.ITypeParameterSymbol):this (FullOpts)
@@ -67,7 +67,6 @@ G_M57685_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        mov      rcx, gword ptr [rsp+0x60]
        ; gcrRegs +[rcx]
        add      edi, eax, dword ptr [rcx+0x08]
-       test     edi, edi
        je       G_M57685_IG14
        mov      rcx, rbx
        lea      r11, [(reloc)]      ; function address
@@ -95,7 +94,7 @@ G_M57685_IG03:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000
        call     [Microsoft.CodeAnalysis.VisualBasic.SymbolDisplayVisitor:AddPunctuation(ushort):this]
        ; gcrRegs -[rcx]
        ; gcr arg pop 0
-						;; size=108 bbWeight=0.50 PerfScore 16.00
+						;; size=106 bbWeight=0.50 PerfScore 15.88
 G_M57685_IG04:        ; bbWeight=0.50, gcrefRegs=0048 {rbx rsi}, byrefRegs=0000 {}, byref, isz
        xor      ebp, ebp
        mov      rcx, rsi
@@ -273,7 +272,7 @@ G_M57685_IG15:        ; bbWeight=1, epilog, nogc, extend
        ret      
 						;; size=13 bbWeight=1 PerfScore 4.25
 
-; Total bytes of code 548, prolog size 37, PerfScore 187.46, instruction count 140, allocated bytes for code 548 (MethodHash=15ba1eaa) for method Microsoft.CodeAnalysis.VisualBasic.SymbolDisplayVisitor:AddTypeParameterConstraints(Microsoft.CodeAnalysis.ITypeParameterSymbol):this (FullOpts)
+; Total bytes of code 546, prolog size 37, PerfScore 187.33, instruction count 139, allocated bytes for code 546 (MethodHash=15ba1eaa) for method Microsoft.CodeAnalysis.VisualBasic.SymbolDisplayVisitor:AddTypeParameterConstraints(Microsoft.CodeAnalysis.ITypeParameterSymbol):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries.pmi.windows.x64.checked.mch
-2 (-11.11%) : 210967.dasm - Internal.TypeSystem.Ecma.EcmaMethod:GetMethodFlags(int):int:this (FullOpts)
@@ -21,9 +21,8 @@ G_M50938_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M50938_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        and      eax, edx, dword ptr [rcx+0x34]
-       test     eax, eax
        jne      SHORT G_M50938_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M50938_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [<unknown method>]
 						;; size=6 bbWeight=0.50 PerfScore 1.00
@@ -32,7 +31,7 @@ G_M50938_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 18, prolog size 0, PerfScore 5.75, instruction count 5, allocated bytes for code 18 (MethodHash=f1143905) for method Internal.TypeSystem.Ecma.EcmaMethod:GetMethodFlags(int):int:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 5.50, instruction count 4, allocated bytes for code 16 (MethodHash=f1143905) for method Internal.TypeSystem.Ecma.EcmaMethod:GetMethodFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-11.11%) : 210932.dasm - Internal.TypeSystem.Ecma.EcmaField:GetFieldFlags(int):int:this (FullOpts)
@@ -21,9 +21,8 @@ G_M33274_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M33274_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        and      eax, edx, dword ptr [rcx+0x2C]
-       test     eax, eax
        jne      SHORT G_M33274_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M33274_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [<unknown method>]
 						;; size=6 bbWeight=0.50 PerfScore 1.00
@@ -32,7 +31,7 @@ G_M33274_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 18, prolog size 0, PerfScore 5.75, instruction count 5, allocated bytes for code 18 (MethodHash=89957e05) for method Internal.TypeSystem.Ecma.EcmaField:GetFieldFlags(int):int:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 5.50, instruction count 4, allocated bytes for code 16 (MethodHash=89957e05) for method Internal.TypeSystem.Ecma.EcmaField:GetFieldFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-11.11%) : 210185.dasm - Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
@@ -19,9 +19,8 @@ G_M15941_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M15941_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        and      eax, edx, dword ptr [rcx+0x20]
-       test     eax, eax
        jne      SHORT G_M15941_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M15941_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
        tail.jmp [<unknown method>]
 						;; size=6 bbWeight=0.50 PerfScore 1.00
@@ -30,7 +29,7 @@ G_M15941_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 18, prolog size 0, PerfScore 5.75, instruction count 5, allocated bytes for code 18 (MethodHash=7f2dc1ba) for method Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
+; Total bytes of code 16, prolog size 0, PerfScore 5.50, instruction count 4, allocated bytes for code 16 (MethodHash=7f2dc1ba) for method Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.10%) : 38228.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
@@ -621,11 +621,10 @@ G_M16204_IG47:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs +[r13]
        sub      ebp, r15d, dword ptr [r12+0x20]
        ; gcrRegs -[rbp]
-       test     ebp, ebp
-       jl       SHORT G_M16204_IG48
+       js       SHORT G_M16204_IG48
        cmp      ebp, dword ptr [r12+0x2C]
        jle      SHORT G_M16204_IG51
-						;; size=73 bbWeight=0.50 PerfScore 10.25
+						;; size=71 bbWeight=0.50 PerfScore 10.12
 G_M16204_IG48:        ; bbWeight=0.50, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [r12+0x08]
@@ -814,7 +813,7 @@ G_M16204_IG68:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1998, prolog size 81, PerfScore 401.21, instruction count 365, allocated bytes for code 1998 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
+; Total bytes of code 1996, prolog size 81, PerfScore 401.08, instruction count 364, allocated bytes for code 1996 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.10%) : 38224.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
@@ -603,11 +603,10 @@ G_M34769_IG45:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs +[r13]
        sub      ebp, r15d, dword ptr [r12+0x20]
        ; gcrRegs -[rbp]
-       test     ebp, ebp
-       jl       SHORT G_M34769_IG46
+       js       SHORT G_M34769_IG46
        cmp      ebp, dword ptr [r12+0x2C]
        jle      SHORT G_M34769_IG49
-						;; size=73 bbWeight=0.50 PerfScore 10.25
+						;; size=71 bbWeight=0.50 PerfScore 10.12
 G_M34769_IG46:        ; bbWeight=0.50, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [r12+0x08]
@@ -791,7 +790,7 @@ G_M34769_IG63:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1905, prolog size 81, PerfScore 386.46, instruction count 352, allocated bytes for code 1905 (MethodHash=388f782e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
+; Total bytes of code 1903, prolog size 81, PerfScore 386.33, instruction count 351, allocated bytes for code 1903 (MethodHash=388f782e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.12%) : 53474.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
@@ -474,11 +474,10 @@ G_M60391_IG29:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi
        test     eax, eax
        jne      SHORT G_M60391_IG35
        sub      ebx, edi, dword ptr [r14+0x20]
-       test     ebx, ebx
-       jl       SHORT G_M60391_IG30
+       js       SHORT G_M60391_IG30
        cmp      ebx, dword ptr [r14+0x2C]
        jle      SHORT G_M60391_IG33
-						;; size=38 bbWeight=0.50 PerfScore 8.00
+						;; size=36 bbWeight=0.50 PerfScore 7.88
 G_M60391_IG30:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref, isz
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
@@ -794,7 +793,7 @@ G_M60391_IG63:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1704, prolog size 16, PerfScore 330.50, instruction count 403, allocated bytes for code 1704 (MethodHash=46391418) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 1702, prolog size 16, PerfScore 330.38, instruction count 402, allocated bytes for code 1702 (MethodHash=46391418) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-10 (-3.51%) : 778726.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
@@ -44,9 +44,8 @@ G_M53248_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
 						;; size=43 bbWeight=1 PerfScore 11.25
 G_M53248_IG03:        ; bbWeight=0.56, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jl       SHORT G_M53248_IG09
-						;; size=12 bbWeight=0.56 PerfScore 2.36
+       js       SHORT G_M53248_IG09
+						;; size=9 bbWeight=0.56 PerfScore 2.22
 G_M53248_IG04:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
        mov      qword ptr [rcx+0x38], rax
 						;; size=4 bbWeight=1 PerfScore 1.00
@@ -116,11 +115,10 @@ G_M53248_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        ; gcr arg pop 0
        int3     
 						;; size=45 bbWeight=0 PerfScore 0.00
-G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
+G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      G_M53248_IG04
+       jns      SHORT G_M53248_IG04
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        ; gcrRegs -[rcx]
        call     CORINFO_HELP_NEWSFAST
@@ -143,7 +141,7 @@ G_M53248_IG10:        ; bbWeight=0, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
        ; gcrRegs -[rcx rbx]
        ; gcr arg pop 0
        int3     
-						;; size=61 bbWeight=0 PerfScore 0.00
+						;; size=54 bbWeight=0 PerfScore 0.00
 G_M53248_IG11:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        mov      rcx, 0xD1FFAB1E      ; <unknown class>
        call     CORINFO_HELP_NEWSFAST
@@ -172,7 +170,7 @@ RWD00  	dd	G_M53248_IG06 - G_M53248_IG02
        	dd	G_M53248_IG10 - G_M53248_IG02
 
 
-; Total bytes of code 285, prolog size 5, PerfScore 19.17, instruction count 69, allocated bytes for code 285 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
+; Total bytes of code 275, prolog size 5, PerfScore 19.03, instruction count 67, allocated bytes for code 275 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-1.55%) : 187208.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (Tier1)
@@ -34,12 +34,11 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      ecx, esi, dword ptr [rbx+0x20]
-       test     ecx, ecx
-       jl       SHORT G_M4769_IG04
+       js       SHORT G_M4769_IG04
        cmp      ecx, dword ptr [rbx+0x2C]
        jg       SHORT G_M4769_IG04
        mov      dword ptr [rbx+0x24], ecx
-						;; size=19 bbWeight=1 PerfScore 9.25
+						;; size=17 bbWeight=1 PerfScore 9.00
 G_M4769_IG03:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
        ; gcrRegs -[rbx]
        add      rsp, 48
@@ -94,7 +93,7 @@ G_M4769_IG06:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byre
        jmp      SHORT G_M4769_IG03
 						;; size=11 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 129, prolog size 7, PerfScore 15.75, instruction count 46, allocated bytes for code 129 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (Tier1)
+; Total bytes of code 127, prolog size 7, PerfScore 15.50, instruction count 45, allocated bytes for code 127 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (Tier1)
 ; ============================================================
 
 Unwind Info:
-2 (-1.54%) : 281095.dasm - System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
@@ -26,15 +26,14 @@ G_M31101_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M31101_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        sub      eax, edx, dword ptr [rcx+0x1C]
-       test     eax, eax
-       jl       SHORT G_M31101_IG04
+       js       SHORT G_M31101_IG04
        cmp      eax, dword ptr [rcx+0x18]
        jge      SHORT G_M31101_IG05
        mov      rcx, gword ptr [rcx+0x08]
        cmp      eax, dword ptr [rcx+0x08]
        jae      SHORT G_M31101_IG07
        movzx    rax, word  ptr [rcx+2*rax+0x10]
-						;; size=30 bbWeight=1 PerfScore 16.25
+						;; size=28 bbWeight=1 PerfScore 16.00
 G_M31101_IG03:        ; bbWeight=1, epilog, nogc, extend
        add      rsp, 32
        pop      rbx
@@ -91,7 +90,7 @@ G_M31101_IG07:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 130, prolog size 5, PerfScore 19.25, instruction count 36, allocated bytes for code 130 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
+; Total bytes of code 128, prolog size 5, PerfScore 19.00, instruction count 35, allocated bytes for code 128 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (Tier1)
 ; ============================================================
 
 Unwind Info:
+3 (+0.06%) : 565414.dasm - System.Xml.XmlDictionaryWriter:WriteArray(System.String,System.String,System.String,int[],int,int):this (Tier1-OSR)
@@ -751,6 +751,7 @@ G_M28748_IG57:        ; bbWeight=0.00, gcrefRegs=C6C8 {rbx rsi rdi r9 r10 r14 r1
        add      r18, r11d, dword ptr [r10+0x1C]
        cmp      r11d, dword ptr [r9+0x08]
        jae      G_M28748_IG176
+       mov      r11d, r11d
        movzx    r11, byte  ptr [r9+r11+0x10]
        mov      dword ptr [rbp-0xBC], r11d
        cmp      r18, dword ptr [r17+0x08]
@@ -767,7 +768,7 @@ G_M28748_IG57:        ; bbWeight=0.00, gcrefRegs=C6C8 {rbx rsi rdi r9 r10 r14 r1
        test     ecx, ecx
        mov      dword ptr [rbp-0xB8], ecx
        jge      SHORT G_M28748_IG57
-						;; size=91 bbWeight=0.00 PerfScore 0.10
+						;; size=94 bbWeight=0.00 PerfScore 0.10
 G_M28748_IG58:        ; bbWeight=0.00, gcVars=000000000000000000000000000000000008000000000010 {V15 V92}, gcrefRegs=C4C8 {rbx rsi rdi r10 r14 r15}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs -[r9 r17]
        ; GC ptr vars -{V04 V51 V53 V90}
@@ -2160,7 +2161,7 @@ G_M28748_IG176:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 5323, prolog size 156, PerfScore 7443.76, instruction count 1105, allocated bytes for code 5323 (MethodHash=4c2a8fb3) for method System.Xml.XmlDictionaryWriter:WriteArray(System.String,System.String,System.String,int[],int,int):this (Tier1-OSR)
+; Total bytes of code 5326, prolog size 156, PerfScore 7443.76, instruction count 1106, allocated bytes for code 5326 (MethodHash=4c2a8fb3) for method System.Xml.XmlDictionaryWriter:WriteArray(System.String,System.String,System.String,int[],int,int):this (Tier1-OSR)
 ; ============================================================
 
 Unwind Info:
-2 (-0.04%) : 338131.dasm - System.IO.Tests.Directory_GetFiles_str_str_so:DirectoryWithTrailingSeparators(System.String):this (Tier1)
@@ -1423,8 +1423,7 @@ G_M12826_IG39:        ; bbWeight=0.01, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byr
        ; gcrRegs -[rax] +[r15]
        mov      r14d, dword ptr [rdi+0x08]
        add      ecx, r14d, dword ptr [r15+0x08]
-       test     ecx, ecx
-       jl       G_M12826_IG50
+       js       G_M12826_IG50
        call     <unknown method>
        ; gcrRegs +[rax]
        ; gcr arg pop 0
@@ -1447,7 +1446,7 @@ G_M12826_IG39:        ; bbWeight=0.01, gcrefRegs=80E8 {rbx rbp rsi rdi r15}, byr
        ; gcrRegs -[rcx r8 r15]
        ; gcr arg pop 0
        jmp      G_M12826_IG20
-						;; size=61 bbWeight=0.01 PerfScore 0.09
+						;; size=59 bbWeight=0.01 PerfScore 0.09
 G_M12826_IG40:        ; bbWeight=0.00, gcVars=00000000000000000000000000000000000000000300000C0000000000000000 {V171 V178 V595 V601}, gcrefRegs=7068 {rbx rbp rsi r12 r13 r14}, byrefRegs=0000 {}, gcvars, byref
        ; gcrRegs +[r12 r14]
        ; GC ptr vars +{V66 V88 V171 V178 V595 V601}
@@ -2741,7 +2740,7 @@ RWD00  	dq	3FE0000000000000h	;          0.5
 RWD08  	dq	41E0000000000000h
 
 
-; Total bytes of code 4986, prolog size 50, PerfScore 37.98, instruction count 1037, allocated bytes for code 4986 (MethodHash=0bb7cde5) for method System.IO.Tests.Directory_GetFiles_str_str_so:DirectoryWithTrailingSeparators(System.String):this (Tier1)
+; Total bytes of code 4984, prolog size 50, PerfScore 37.97, instruction count 1036, allocated bytes for code 4984 (MethodHash=0bb7cde5) for method System.IO.Tests.Directory_GetFiles_str_str_so:DirectoryWithTrailingSeparators(System.String):this (Tier1)
 ; ============================================================
 
 Unwind Info:
-8 (-0.04%) : 683218.dasm - System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValueSegment_BasicHelper[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.String,System.String,System.String,System.Text.Json.JsonWriterOptions,int) (Tier1)
@@ -799,8 +799,7 @@ G_M63250_IG09:        ; bbWeight=1.00, gcrefRegs=7204 {rdx r9 r12 r13 r14}, byre
        mov      gword ptr [rbp-0x4F8], rdx
        ; GC ptr vars +{V68}
        add      r16, r11d, dword ptr [rdx+0x08]
-       test     r16, r16
-       jl       G_M63250_IG318
+       js       G_M63250_IG318
        mov      ecx, r16
        call     <unknown method>
        ; gcrRegs -[rdx r9] +[rax]
@@ -809,7 +808,7 @@ G_M63250_IG09:        ; bbWeight=1.00, gcrefRegs=7204 {rdx r9 r12 r13 r14}, byre
        ; GC ptr vars +{V146}
        test     rax, rax
        jne      SHORT G_M63250_IG11
-						;; size=73 bbWeight=1.00 PerfScore 16.68
+						;; size=69 bbWeight=1.00 PerfScore 16.43
 G_M63250_IG10:        ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000000000000021D000 {V66 V68 V69 V146 V520}, gcrefRegs=7000 {r12 r13 r14}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E
@@ -917,8 +916,7 @@ G_M63250_IG17:        ; bbWeight=1.00, gcVars=0000000000000000000000000000000000
        mov      gword ptr [rbp-0x4F8], rdx
        ; GC ptr vars +{V68}
        add      r16, r11d, dword ptr [rdx+0x08]
-       test     r16, r16
-       jl       G_M63250_IG318
+       js       G_M63250_IG318
        mov      ecx, r16
        call     <unknown method>
        ; gcrRegs -[rdx]
@@ -927,7 +925,7 @@ G_M63250_IG17:        ; bbWeight=1.00, gcVars=0000000000000000000000000000000000
        ; GC ptr vars +{V170}
        test     rax, rax
        jne      SHORT G_M63250_IG19
-						;; size=73 bbWeight=1.00 PerfScore 16.68
+						;; size=69 bbWeight=1.00 PerfScore 16.43
 G_M63250_IG18:        ; bbWeight=0.50, gcVars=000000000000000000000000000000000000000000000000000000000021E008 {V66 V68 V69 V142 V170 V520}, gcrefRegs=7000 {r12 r13 r14}, byrefRegs=00C8 {rbx rsi rdi}, gcvars, byref
        ; gcrRegs -[rax]
        mov      rcx, 0xD1FFAB1E
@@ -7274,7 +7272,7 @@ G_M63250_IG384:        ; bbWeight=0.00, funclet epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.00 PerfScore 0.00
 
-; Total bytes of code 17933, prolog size 97, PerfScore 1780.64, instruction count 3193, allocated bytes for code 17933 (MethodHash=01af08ed) for method System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValueSegment_BasicHelper[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.String,System.String,System.String,System.Text.Json.JsonWriterOptions,int) (Tier1)
+; Total bytes of code 17925, prolog size 97, PerfScore 1780.14, instruction count 3191, allocated bytes for code 17925 (MethodHash=01af08ed) for method System.Text.Json.Tests.Utf8JsonWriterTests:WriteStringValueSegment_BasicHelper[ubyte](System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.ReadOnlySpan`1[ubyte],System.String,System.String,System.String,System.Text.Json.JsonWriterOptions,int) (Tier1)
 ; ============================================================
 
 Unwind Info:
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-2 (-2.63%) : 102212.dasm - System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
@@ -28,8 +28,7 @@ G_M15541_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
 						;; size=4 bbWeight=1 PerfScore 1.25
 G_M15541_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edx, esi, dword ptr [rbx+0x24]
-       test     edx, edx
-       jge      SHORT G_M15541_IG04
+       jns      SHORT G_M15541_IG04
        cmp      byte  ptr [rbx+0x29], 0
        je       SHORT G_M15541_IG04
        mov      rdx, gword ptr [rbx+0x10]
@@ -39,7 +38,7 @@ G_M15541_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        call     [System.Configuration.XmlUtilWriter:RestoreStreamCheckpoint(System.Object):this]
        ; gcrRegs -[rcx rdx]
        ; gcr arg pop 0
-						;; size=30 bbWeight=0.50 PerfScore 6.75
+						;; size=28 bbWeight=0.50 PerfScore 6.62
 G_M15541_IG04:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        sub      edx, esi, dword ptr [rbx+0x24]
        mov      rcx, rbx
@@ -62,7 +61,7 @@ G_M15541_IG07:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=7 bbWeight=0.50 PerfScore 1.12
 
-; Total bytes of code 76, prolog size 11, PerfScore 15.25, instruction count 26, allocated bytes for code 76 (MethodHash=882fc34a) for method System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
+; Total bytes of code 74, prolog size 11, PerfScore 15.12, instruction count 25, allocated bytes for code 74 (MethodHash=882fc34a) for method System.Configuration.XmlUtilWriter:AppendSpacesToLinePosition(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-2.13%) : 324587.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
@@ -88,16 +88,15 @@ G_M51216_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        jne      SHORT G_M51216_IG06
        movzx    rcx, word  ptr [rsp+0x30]
        cmp      ecx, 0xFFFF
-       je       G_M51216_IG14
-						;; size=70 bbWeight=0.50 PerfScore 9.12
+       je       SHORT G_M51216_IG14
+						;; size=66 bbWeight=0.50 PerfScore 9.12
 G_M51216_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rbx, gword ptr [rbx+0x08]
        sub      esi, edi, dword ptr [rbx+0x20]
-       test     esi, esi
-       jl       SHORT G_M51216_IG07
+       js       SHORT G_M51216_IG07
        cmp      esi, dword ptr [rbx+0x2C]
        jle      SHORT G_M51216_IG10
-						;; size=20 bbWeight=0.50 PerfScore 5.12
+						;; size=18 bbWeight=0.50 PerfScore 5.00
 G_M51216_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
@@ -171,7 +170,7 @@ G_M51216_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
 
-; Total bytes of code 282, prolog size 19, PerfScore 55.12, instruction count 89, allocated bytes for code 282 (MethodHash=591837ef) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
+; Total bytes of code 276, prolog size 19, PerfScore 55.00, instruction count 88, allocated bytes for code 276 (MethodHash=591837ef) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.63%) : 52276.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
@@ -34,9 +34,8 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edi, esi, dword ptr [rbx+0x20]
-       test     edi, edi
-       jl       SHORT G_M4769_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+       js       SHORT G_M4769_IG04
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M4769_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      edi, dword ptr [rbx+0x2C]
        jle      SHORT G_M4769_IG07
@@ -94,7 +93,7 @@ G_M4769_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 123, prolog size 7, PerfScore 30.12, instruction count 45, allocated bytes for code 123 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
+; Total bytes of code 121, prolog size 7, PerfScore 29.88, instruction count 44, allocated bytes for code 121 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.09%) : 4616.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
@@ -651,11 +651,10 @@ G_M16204_IG47:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        movzx    rbp, byte  ptr [rsp+0x460]
        ; gcrRegs -[rbp]
        sub      eax, r15d, dword ptr [r12+0x20]
-       test     eax, eax
-       jl       SHORT G_M16204_IG48
+       js       SHORT G_M16204_IG48
        cmp      eax, dword ptr [r12+0x2C]
        jle      SHORT G_M16204_IG51
-						;; size=85 bbWeight=0.50 PerfScore 10.75
+						;; size=83 bbWeight=0.50 PerfScore 10.62
 G_M16204_IG48:        ; bbWeight=0.50, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [r12+0x08]
@@ -855,7 +854,7 @@ G_M16204_IG68:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2200, prolog size 74, PerfScore 422.83, instruction count 384, allocated bytes for code 2200 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
+; Total bytes of code 2198, prolog size 74, PerfScore 422.71, instruction count 383, allocated bytes for code 2198 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.09%) : 351195.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
@@ -639,11 +639,10 @@ G_M34769_IG45:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        movzx    rbp, byte  ptr [rsp+0x460]
        ; gcrRegs -[rbp]
        sub      eax, r15d, dword ptr [r12+0x20]
-       test     eax, eax
-       jl       SHORT G_M34769_IG46
+       js       SHORT G_M34769_IG46
        cmp      eax, dword ptr [r12+0x2C]
        jle      SHORT G_M34769_IG49
-						;; size=82 bbWeight=0.50 PerfScore 10.75
+						;; size=80 bbWeight=0.50 PerfScore 10.62
 G_M34769_IG46:        ; bbWeight=0.50, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [r12+0x08]
@@ -839,7 +838,7 @@ G_M34769_IG63:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 2114, prolog size 74, PerfScore 408.33, instruction count 379, allocated bytes for code 2114 (MethodHash=388f782e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
+; Total bytes of code 2112, prolog size 74, PerfScore 408.21, instruction count 378, allocated bytes for code 2112 (MethodHash=388f782e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:ReadCurrentNode():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.16%) : 167376.dasm - System.Memory.Tests.Span.StringSearchValuesTests+<>c__DisplayClass5_0:g__TestWithDifferentMarkerChars|3(System.Span`1[ushort],ushort):this (FullOpts)
@@ -521,9 +521,8 @@ G_M27901_IG21:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi
        mov      r8, gword ptr [rbx+0x28]
        ; gcrRegs +[r8]
        sub      edx, edi, dword ptr [r8+0x08]
-       test     edx, edx
-       jl       G_M27901_IG34
-						;; size=22 bbWeight=0.50 PerfScore 3.25
+       js       G_M27901_IG34
+						;; size=20 bbWeight=0.50 PerfScore 3.12
 G_M27901_IG22:        ; bbWeight=4, gcrefRegs=0008 {rbx}, byrefRegs=0040 {rsi}, byref, isz
        ; gcrRegs -[r8]
        mov      r8d, ebp
@@ -738,7 +737,7 @@ G_M27901_IG41:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1270, prolog size 34, PerfScore 1517.38, instruction count 288, allocated bytes for code 1270 (MethodHash=23219302) for method System.Memory.Tests.Span.StringSearchValuesTests+<>c__DisplayClass5_0:<IndexOfAny>g__TestWithDifferentMarkerChars|3(System.Span`1[ushort],ushort):this (FullOpts)
+; Total bytes of code 1268, prolog size 34, PerfScore 1517.25, instruction count 287, allocated bytes for code 1268 (MethodHash=23219302) for method System.Memory.Tests.Span.StringSearchValuesTests+<>c__DisplayClass5_0:<IndexOfAny>g__TestWithDifferentMarkerChars|3(System.Span`1[ushort],ushort):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
realworld.run.windows.x64.checked.mch
-6 (-2.13%) : 7701.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
@@ -88,16 +88,15 @@ G_M51216_IG05:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        jne      SHORT G_M51216_IG06
        movzx    rcx, word  ptr [rsp+0x30]
        cmp      ecx, 0xFFFF
-       je       G_M51216_IG14
-						;; size=70 bbWeight=0.50 PerfScore 9.12
+       je       SHORT G_M51216_IG14
+						;; size=66 bbWeight=0.50 PerfScore 9.12
 G_M51216_IG06:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rbx, gword ptr [rbx+0x08]
        sub      esi, edi, dword ptr [rbx+0x20]
-       test     esi, esi
-       jl       SHORT G_M51216_IG07
+       js       SHORT G_M51216_IG07
        cmp      esi, dword ptr [rbx+0x2C]
        jle      SHORT G_M51216_IG10
-						;; size=20 bbWeight=0.50 PerfScore 5.12
+						;; size=18 bbWeight=0.50 PerfScore 5.00
 G_M51216_IG07:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        mov      rcx, gword ptr [rbx+0x08]
        ; gcrRegs +[rcx]
@@ -171,7 +170,7 @@ G_M51216_IG15:        ; bbWeight=0.50, epilog, nogc, extend
        ret      
 						;; size=8 bbWeight=0.50 PerfScore 1.38
 
-; Total bytes of code 282, prolog size 19, PerfScore 55.12, instruction count 89, allocated bytes for code 282 (MethodHash=591837ef) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
+; Total bytes of code 276, prolog size 19, PerfScore 55.00, instruction count 88, allocated bytes for code 276 (MethodHash=591837ef) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:AdvanceIfMatches(ushort):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-2.10%) : 1786.dasm - System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
@@ -45,16 +45,14 @@ G_M53248_IG03:        ; bbWeight=0.75, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
 						;; size=27 bbWeight=0.75 PerfScore 4.50
 G_M53248_IG04:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x30]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      G_M53248_IG12
-						;; size=17 bbWeight=0.50 PerfScore 3.12
+						;; size=14 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG05:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        add      rax, rdx, qword ptr [rcx+0x38]
-       test     rax, rax
-       jge      SHORT G_M53248_IG07
+       jns      SHORT G_M53248_IG07
        jmp      SHORT G_M53248_IG11
-						;; size=14 bbWeight=0.50 PerfScore 3.12
+						;; size=11 bbWeight=0.50 PerfScore 3.00
 G_M53248_IG06:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        mov      rax, rdx
        test     rax, rax
@@ -174,7 +172,7 @@ RWD00  	dd	G_M53248_IG06 - G_M53248_IG02
        	dd	G_M53248_IG04 - G_M53248_IG02
 
 
-; Total bytes of code 286, prolog size 5, PerfScore 22.50, instruction count 70, allocated bytes for code 286 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
+; Total bytes of code 280, prolog size 5, PerfScore 22.25, instruction count 68, allocated bytes for code 280 (MethodHash=fb3f2fff) for method System.IO.UnmanagedMemoryStream:Seek(long,int):long:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.63%) : 7038.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
@@ -34,9 +34,8 @@ G_M4769_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 						;; size=12 bbWeight=1 PerfScore 3.75
 G_M4769_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        sub      edi, esi, dword ptr [rbx+0x20]
-       test     edi, edi
-       jl       SHORT G_M4769_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+       js       SHORT G_M4769_IG04
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M4769_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        cmp      edi, dword ptr [rbx+0x2C]
        jle      SHORT G_M4769_IG07
@@ -94,7 +93,7 @@ G_M4769_IG08:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
        ret      
 						;; size=8 bbWeight=1 PerfScore 2.75
 
-; Total bytes of code 123, prolog size 7, PerfScore 30.12, instruction count 45, allocated bytes for code 123 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
+; Total bytes of code 121, prolog size 7, PerfScore 29.88, instruction count 44, allocated bytes for code 121 (MethodHash=2f60ed5e) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SlidingTextWindow:Reset(int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.10%) : 7074.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
@@ -621,11 +621,10 @@ G_M16204_IG47:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {},
        ; gcrRegs +[r13]
        sub      ebp, r15d, dword ptr [r12+0x20]
        ; gcrRegs -[rbp]
-       test     ebp, ebp
-       jl       SHORT G_M16204_IG48
+       js       SHORT G_M16204_IG48
        cmp      ebp, dword ptr [r12+0x2C]
        jle      SHORT G_M16204_IG51
-						;; size=73 bbWeight=0.50 PerfScore 10.25
+						;; size=71 bbWeight=0.50 PerfScore 10.12
 G_M16204_IG48:        ; bbWeight=0.50, gcrefRegs=7008 {rbx r12 r13 r14}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs -[rcx]
        mov      rcx, gword ptr [r12+0x08]
@@ -814,7 +813,7 @@ G_M16204_IG68:        ; bbWeight=0, gcVars=00000000000000000000000000000000 {},
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1998, prolog size 81, PerfScore 401.21, instruction count 365, allocated bytes for code 1998 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
+; Total bytes of code 1996, prolog size 81, PerfScore 401.08, instruction count 364, allocated bytes for code 1996 (MethodHash=b022c0b3) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxParser:AddNewToken():this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.17%) : 7709.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
@@ -400,11 +400,10 @@ G_M60391_IG17:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi
        test     eax, eax
        jne      SHORT G_M60391_IG23
        sub      ebx, edi, dword ptr [r14+0x20]
-       test     ebx, ebx
-       jl       SHORT G_M60391_IG18
+       js       SHORT G_M60391_IG18
        cmp      ebx, dword ptr [r14+0x2C]
        jle      SHORT G_M60391_IG21
-						;; size=38 bbWeight=0.50 PerfScore 8.00
+						;; size=36 bbWeight=0.50 PerfScore 7.88
 G_M60391_IG18:        ; bbWeight=0.50, gcrefRegs=4000 {r14}, byrefRegs=0040 {rsi}, byref, isz
        mov      rcx, gword ptr [r14+0x08]
        ; gcrRegs +[rcx]
@@ -588,7 +587,7 @@ G_M60391_IG33:        ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 1183, prolog size 16, PerfScore 283.25, instruction count 310, allocated bytes for code 1183 (MethodHash=46391418) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
+; Total bytes of code 1181, prolog size 16, PerfScore 283.12, instruction count 309, allocated bytes for code 1181 (MethodHash=46391418) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer+InterpolatedStringScanner:ScanOpenQuote(byref,byref,byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-6 (-0.19%) : 7295.dasm - Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
@@ -403,11 +403,10 @@ G_M37698_IG18:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        mov      rdi, gword ptr [rsi+0x08]
        ; gcrRegs +[rdi]
        sub      r14d, ebp, dword ptr [rdi+0x20]
-       test     r14d, r14d
-       jl       SHORT G_M37698_IG19
+       js       SHORT G_M37698_IG19
        cmp      r14d, dword ptr [rdi+0x2C]
        jle      SHORT G_M37698_IG22
-						;; size=31 bbWeight=0.50 PerfScore 5.75
+						;; size=28 bbWeight=0.50 PerfScore 5.62
 G_M37698_IG19:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, gword ptr [rdi+0x08]
        ; gcrRegs +[rcx]
@@ -505,11 +504,10 @@ G_M37698_IG26:        ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0008 {rbx
        mov      rdi, gword ptr [rsi+0x08]
        ; gcrRegs +[rdi]
        sub      r14d, ebp, dword ptr [rdi+0x20]
-       test     r14d, r14d
-       jl       SHORT G_M37698_IG27
+       js       SHORT G_M37698_IG27
        cmp      r14d, dword ptr [rdi+0x2C]
        jle      SHORT G_M37698_IG30
-						;; size=22 bbWeight=0.50 PerfScore 5.12
+						;; size=19 bbWeight=0.50 PerfScore 5.00
 G_M37698_IG27:        ; bbWeight=0.50, gcrefRegs=00C0 {rsi rdi}, byrefRegs=0008 {rbx}, byref, isz
        mov      rcx, gword ptr [rdi+0x08]
        ; gcrRegs +[rcx]
@@ -1462,7 +1460,7 @@ RWD140 	dd	G_M37698_IG69 - G_M37698_IG02
        	dd	G_M37698_IG66 - G_M37698_IG02
 
 
-; Total bytes of code 3104, prolog size 22, PerfScore 420.21, instruction count 748, allocated bytes for code 3104 (MethodHash=39536cbd) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
+; Total bytes of code 3098, prolog size 22, PerfScore 419.96, instruction count 746, allocated bytes for code 3098 (MethodHash=39536cbd) for method Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.Lexer:ScanXmlCrefToken(byref):ubyte:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
smoke_tests.nativeaot.windows.x64.checked.mch
-2 (-11.76%) : 24559.dasm - Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
@@ -19,9 +19,8 @@ G_M15941_IG01:        ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
 G_M15941_IG02:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        ; gcrRegs +[rcx]
        and      eax, edx, dword ptr [rcx+0x30]
-       test     eax, eax
        jne      SHORT G_M15941_IG04
-						;; size=11 bbWeight=1 PerfScore 4.25
+						;; size=9 bbWeight=1 PerfScore 4.00
 G_M15941_IG03:        ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, epilog, nogc
        jmp      <unknown method>
 						;; size=5 bbWeight=0.50 PerfScore 1.00
@@ -30,7 +29,7 @@ G_M15941_IG04:        ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
        ret      
 						;; size=1 bbWeight=0.50 PerfScore 0.50
 
-; Total bytes of code 17, prolog size 0, PerfScore 5.75, instruction count 5, allocated bytes for code 17 (MethodHash=7f2dc1ba) for method Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
+; Total bytes of code 15, prolog size 0, PerfScore 5.50, instruction count 4, allocated bytes for code 15 (MethodHash=7f2dc1ba) for method Internal.TypeSystem.TypeDesc:GetTypeFlags(int):int:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.61%) : 2931.dasm - System.Text.StringBuilder:get_Chars(int):ushort:this (FullOpts)
@@ -34,9 +34,8 @@ G_M31101_IG03:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
 						;; size=9 bbWeight=4 PerfScore 13.00
 G_M31101_IG04:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        sub      ebx, edx, dword ptr [rcx+0x1C]
-       test     ebx, ebx
-       jl       SHORT G_M31101_IG03
-						;; size=11 bbWeight=8 PerfScore 34.00
+       js       SHORT G_M31101_IG03
+						;; size=9 bbWeight=8 PerfScore 32.00
 G_M31101_IG05:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, dword ptr [rcx+0x18]
        jge      SHORT G_M31101_IG07
@@ -98,7 +97,7 @@ G_M31101_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 124, prolog size 5, PerfScore 64.25, instruction count 37, allocated bytes for code 124 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (FullOpts)
+; Total bytes of code 122, prolog size 5, PerfScore 62.25, instruction count 36, allocated bytes for code 122 (MethodHash=80738682) for method System.Text.StringBuilder:get_Chars(int):ushort:this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.31%) : 6121.dasm - System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
@@ -35,9 +35,8 @@ G_M32255_IG03:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
 						;; size=9 bbWeight=4 PerfScore 13.00
 G_M32255_IG04:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        sub      ebx, edx, dword ptr [rcx+0x1C]
-       test     ebx, ebx
-       jl       SHORT G_M32255_IG03
-						;; size=11 bbWeight=8 PerfScore 34.00
+       js       SHORT G_M32255_IG03
+						;; size=9 bbWeight=8 PerfScore 32.00
 G_M32255_IG05:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, dword ptr [rcx+0x18]
        jge      SHORT G_M32255_IG07
@@ -105,7 +104,7 @@ G_M32255_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 153, prolog size 5, PerfScore 63.25, instruction count 41, allocated bytes for code 153 (MethodHash=ad9c8200) for method System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
+; Total bytes of code 151, prolog size 5, PerfScore 61.25, instruction count 40, allocated bytes for code 151 (MethodHash=ad9c8200) for method System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.45%) : 22676.dasm - System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
@@ -109,9 +109,8 @@ G_M20344_IG04:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp},
 						;; size=19 bbWeight=2 PerfScore 4.00
 G_M20344_IG05:        ; bbWeight=4, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref
        sub      ecx, edi, dword ptr [rsi+0x1C]
-       test     ecx, ecx
-       jl       G_M20344_IG15
-						;; size=15 bbWeight=4 PerfScore 17.00
+       js       G_M20344_IG15
+						;; size=13 bbWeight=4 PerfScore 16.00
 G_M20344_IG06:        ; bbWeight=2, gcrefRegs=0040 {rsi}, byrefRegs=0020 {rbp}, byref, isz
        mov      edx, dword ptr [rsi+0x18]
        cmp      ecx, edx
@@ -284,7 +283,7 @@ G_M20344_IG21:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=39 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 442, prolog size 24, PerfScore 144.00, instruction count 128, allocated bytes for code 442 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
+; Total bytes of code 440, prolog size 24, PerfScore 143.00, instruction count 127, allocated bytes for code 440 (MethodHash=f81fb087) for method System.Text.StringBuilder:CopyTo(int,System.Span`1[ushort],int):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-0.77%) : 2716.dasm - System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
@@ -41,9 +41,8 @@ G_M27413_IG01:        ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
 G_M27413_IG02:        ; bbWeight=1, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref, isz
        movzx    rsi, dl
        or       cl, sil, byte  ptr [rbx+0x15]
-       test     cl, cl
        jne      SHORT G_M27413_IG04
-						;; size=15 bbWeight=1 PerfScore 4.50
+						;; size=13 bbWeight=1 PerfScore 4.25
 G_M27413_IG03:        ; bbWeight=0.50, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byref
        lea      rcx, gword ptr [(reloc)]
        ; gcrRegs +[rcx]
@@ -169,7 +168,7 @@ G_M27413_IG19:        ; bbWeight=0, gcrefRegs=0008 {rbx}, byrefRegs=0000 {}, byr
        jmp      SHORT G_M27413_IG16
 						;; size=17 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 260, prolog size 13, PerfScore 188.50, instruction count 78, allocated bytes for code 260 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
+; Total bytes of code 258, prolog size 13, PerfScore 188.25, instruction count 77, allocated bytes for code 258 (MethodHash=372f94ea) for method System.Runtime.InteropServices.SafeHandle:InternalRelease(ubyte):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
-2 (-1.29%) : 13141.dasm - System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
@@ -36,9 +36,8 @@ G_M32255_IG03:        ; bbWeight=4, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
 						;; size=9 bbWeight=4 PerfScore 13.00
 G_M32255_IG04:        ; bbWeight=8, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        sub      ebx, edx, dword ptr [rcx+0x1C]
-       test     ebx, ebx
-       jl       SHORT G_M32255_IG03
-						;; size=11 bbWeight=8 PerfScore 34.00
+       js       SHORT G_M32255_IG03
+						;; size=9 bbWeight=8 PerfScore 32.00
 G_M32255_IG05:        ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref, isz
        cmp      ebx, dword ptr [rcx+0x18]
        jge      SHORT G_M32255_IG07
@@ -110,7 +109,7 @@ G_M32255_IG09:        ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
        int3     
 						;; size=6 bbWeight=0 PerfScore 0.00
 
-; Total bytes of code 155, prolog size 5, PerfScore 63.25, instruction count 43, allocated bytes for code 155 (MethodHash=ad9c8200) for method System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
+; Total bytes of code 153, prolog size 5, PerfScore 61.25, instruction count 42, allocated bytes for code 153 (MethodHash=ad9c8200) for method System.Text.StringBuilder:set_Chars(int,ushort):this (FullOpts)
 ; ============================================================
 
 Unwind Info:
Details

Size improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
aspnet.run.windows.x64.checked.mch 43 43 0 0 -127 +0
benchmarks.run.windows.x64.checked.mch 12 12 0 0 -43 +0
benchmarks.run_pgo.windows.x64.checked.mch 125 125 0 0 -266 +0
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch 12 12 0 0 -43 +0
coreclr_tests.run.windows.x64.checked.mch 239 239 0 0 -555 +0
libraries.crossgen2.windows.x64.checked.mch 16 16 0 0 -42 +0
libraries.pmi.windows.x64.checked.mch 48 48 0 0 -218 +0
libraries_tests.run.windows.x64.Release.mch 601 599 2 0 -1,436 +6
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 74 74 0 0 -352 +0
realworld.run.windows.x64.checked.mch 31 31 0 0 -156 +0
smoke_tests.nativeaot.windows.x64.checked.mch 17 17 0 0 -34 +0
1,218 1,216 2 0 -3,272 +6

PerfScore improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same PerfScore Improvements (PerfScore) Regressions (PerfScore) PerfScore Overall in FullOpts
aspnet.run.windows.x64.checked.mch 43 43 0 0 -0.56% 0.00% -0.0003%
benchmarks.run.windows.x64.checked.mch 12 12 0 0 -0.63% 0.00% -0.0003%
benchmarks.run_pgo.windows.x64.checked.mch 125 125 0 0 -0.53% 0.00% -0.0007%
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch 12 12 0 0 -0.63% 0.00% -0.0003%
coreclr_tests.run.windows.x64.checked.mch 239 236 0 3 -0.40% 0.00% -0.0004%
libraries.crossgen2.windows.x64.checked.mch 16 16 0 0 -1.05% 0.00% -0.0001%
libraries.pmi.windows.x64.checked.mch 48 48 0 0 -0.59% 0.00% -0.0001%
libraries_tests.run.windows.x64.Release.mch 601 559 0 42 -0.39% 0.00% -0.0010%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 74 74 0 0 -0.19% 0.00% -0.0000%
realworld.run.windows.x64.checked.mch 31 31 0 0 -0.43% 0.00% -0.0005%
smoke_tests.nativeaot.windows.x64.checked.mch 17 17 0 0 -2.02% 0.00% -0.0011%

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
aspnet.run.windows.x64.checked.mch 193,505 104,905 88,600 0 (0.00%) 0 (0.00%)
benchmarks.run.windows.x64.checked.mch 29,169 5 29,164 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch 146,958 57,407 89,551 9,606 (6.14%) 9,606 (6.14%)
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch 29,099 5 29,094 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch 612,952 371,819 241,133 4,341 (0.70%) 4,341 (0.70%)
libraries.crossgen2.windows.x64.checked.mch 272,855 17 272,838 13 (0.00%) 13 (0.00%)
libraries.pmi.windows.x64.checked.mch 293,401 6 293,395 0 (0.00%) 0 (0.00%)
libraries_tests.run.windows.x64.Release.mch 769,156 542,725 226,431 28,254 (3.54%) 28,254 (3.54%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch 365,057 22,082 342,975 16 (0.00%) 16 (0.00%)
realworld.run.windows.x64.checked.mch 29,272 3 29,269 1 (0.00%) 1 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch 31,890 14 31,876 0 (0.00%) 0 (0.00%)
2,773,314 1,098,988 1,674,326 42,231 (1.50%) 42,231 (1.50%)

jit-analyze output

@Ruihan-Yin
Copy link
Member Author

Failures look irrelevant , PR is ready for review.

CC @dotnet/intel

@Ruihan-Yin Ruihan-Yin marked this pull request as ready for review May 21, 2025 23:29
@Copilot Copilot AI review requested due to automatic review settings May 21, 2025 23:29
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR fixes bugs in the APX new data destination (NDD) code generation and improves the overall codegen logic.

  • Updated binary instruction formatting to bypass a function call when NDD is enabled.
  • Added an extra check to prevent emitting redundant move instructions when using APX NDD.
Comments suppressed due to low confidence (1)

src/coreclr/jit/emitxarch.cpp:10575

  • The addition of the redundant mov check is a positive improvement. Please ensure that the IsRedundantMov function covers all relevant cases to avoid skipping a genuinely needed mov operation.
if (DoJitUseApxNDD(ins) && regOp->GetRegNum() != targetReg && !IsRedundantMov(INS_mov, IF_RWR_RRD, attr, targetReg, regOp->GetRegNum(), false))

@@ -6420,7 +6420,7 @@ regNumber emitter::emitInsBinary(instruction ins, emitAttr attr, GenTree* dst, G
}
else
{
fmt = useNDD ? emitInsModeFormat(ins, IF_RWR_RRD_ARD) : emitInsModeFormat(ins, IF_RRD_ARD);
fmt = useNDD ? IF_RWR_RRD_ARD : emitInsModeFormat(ins, IF_RRD_ARD);
Copy link
Preview

Copilot AI May 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

By directly assigning IF_RWR_RRD_ARD when useNDD is true, ensure that this constant provides equivalent behavior as the previous call to emitInsModeFormat(ins, IF_RWR_RRD_ARD) and doesn't bypass any essential formatting logic.

Suggested change
fmt = useNDD ? IF_RWR_RRD_ARD : emitInsModeFormat(ins, IF_RRD_ARD);
fmt = useNDD ? emitInsModeFormat(ins, IF_RWR_RRD_ARD) : emitInsModeFormat(ins, IF_RRD_ARD);

Copilot uses AI. Check for mistakes.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant