Skip to content

[APX] Enable APX-EVEX.ZU for SETcc instructions - #117258

Merged
EgorBo merged 24 commits into
dotnet:mainfrom
Ruihan-Yin:apx-zu
Jul 24, 2025
Merged

[APX] Enable APX-EVEX.ZU for SETcc instructions#117258
EgorBo merged 24 commits into
dotnet:mainfrom
Ruihan-Yin:apx-zu

Conversation

@Ruihan-Yin

Copy link
Copy Markdown
Member

This PR enables APX feature: EVEX.ZU for SETcc instructions.

image

This allow us not to emit an extra movzx, dst, dst to zero out the upper part of the register when using SETcc.

@github-actionsgithub-actionsBot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jul 3, 2025
@dotnet-policy-servicedotnet-policy-serviceBot added the community-contribution Indicates that the PR has been added by a community member label Jul 3, 2025
@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

Diffs are based on 2,746,670 contexts (1,099,928 MinOpts, 1,646,742 FullOpts).

MISSED contexts: 834 (0.03%)

Base JIT options: JitBypassApxCheck=1

Diff JIT options: JitBypassApxCheck=1;EnableApxZU=1

Overall (-132,728 bytes)
CollectionBase size (bytes)Diff size (bytes)PerfScore in DiffsBase Instruction CountDiff Instruction Count
aspnet.run.windows.x64.checked.mch72,213,713-15,054-0.90%16496999-31,008(-0.71%)(-0.71%)
benchmarks.run.windows.x64.checked.mch8,860,456-1,811-0.87%2230787-8,171(-1.39%)(-1.40%)
benchmarks.run_pgo.windows.x64.checked.mch78,306,645-26,777-0.83%18360180-55,633(-0.78%)(-0.78%)
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch8,873,055-1,811-0.87%2233570-8,225(-1.39%)(-1.40%)
coreclr_tests.run.windows.x64.checked.mch424,009,451-7,678-0.60%87926723-202,141(-1.29%)(-1.29%)
libraries.pmi.windows.x64.checked.mch57,374,919-9,123-1.63%14529270-26,772(-1.16%)(-1.17%)
libraries_tests.run.windows.x64.Release.mch319,808,597-50,564-0.70%69812667-133,449(-0.75%)(-0.76%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch154,516,552-16,679-0.67%35658228-66,655(-1.06%)(-1.06%)
realworld.run.windows.x64.checked.mch11,796,060-2,915-0.80%2856074-6,830(-0.92%)(-0.93%)
smoke_tests.nativeaot.windows.x64.checked.mch5,516,034-316-1.52%1547261-677(-1.31%)(-1.36%)
MinOpts (+9,265 bytes)
CollectionBase size (bytes)Diff size (bytes)PerfScore in DiffsBase Instruction CountDiff Instruction Count
aspnet.run.windows.x64.checked.mch32,168,380-263-1.06%6835190-7,425(-0.85%)(-0.85%)
benchmarks.run.windows.x64.checked.mch467+0-0.43%133-1(-2.00%)(-2.00%)
benchmarks.run_pgo.windows.x64.checked.mch14,441,360-186-1.05%3221434-8,212(-1.26%)(-1.26%)
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch467+0-0.43%133-1(-2.00%)(-2.00%)
coreclr_tests.run.windows.x64.checked.mch287,806,235+10,117-0.48%57856217-168,505(-1.42%)(-1.42%)
libraries.pmi.windows.x64.checked.mch112,785+0-0.29%20282-8(-0.04%)(-0.04%)
libraries_tests.run.windows.x64.Release.mch190,608,270-412-0.77%39677374-54,529(-1.16%)(-1.16%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch11,159,603+9-0.42%2565793-24,853(-1.59%)(-1.59%)
FullOpts (-141,993 bytes)
CollectionBase size (bytes)Diff size (bytes)PerfScore in DiffsBase Instruction CountDiff Instruction Count
aspnet.run.windows.x64.checked.mch40,045,333-14,791-0.83%9661809-23,583(-0.67%)(-0.67%)
benchmarks.run.windows.x64.checked.mch8,859,989-1,811-0.87%2230654-8,170(-1.39%)(-1.40%)
benchmarks.run_pgo.windows.x64.checked.mch63,865,285-26,591-0.76%15138746-47,421(-0.73%)(-0.73%)
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch8,872,588-1,811-0.87%2233437-8,224(-1.39%)(-1.40%)
coreclr_tests.run.windows.x64.checked.mch136,203,216-17,795-0.91%30070506-33,636(-0.89%)(-0.90%)
libraries.pmi.windows.x64.checked.mch57,262,134-9,123-1.63%14508988-26,764(-1.17%)(-1.18%)
libraries_tests.run.windows.x64.Release.mch129,200,327-50,152-0.64%30135293-78,920(-0.61%)(-0.61%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch143,356,949-16,688-0.77%33092435-41,802(-0.88%)(-0.89%)
realworld.run.windows.x64.checked.mch11,571,181-2,915-0.80%2820911-6,830(-0.92%)(-0.93%)
smoke_tests.nativeaot.windows.x64.checked.mch5,514,881-316-1.52%1546956-677(-1.31%)(-1.36%)
Example diffs
aspnet.run.windows.x64.checked.mch
-4 (-8.89%) : 197485.dasm - System.Threading.SpinLock:Exit(bool):this (Tier1)
@@ -21,16 +21,14 @@ G_M57783_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, dword ptr [rcx]
test eax, 0xD1FFAB1E
- setne r8b- movzx r8, r8b+ setzune r8b
test dl, dl
- sete r10b- movzx r10, r10b+ setzue r10b
test r8d, r10d
je SHORT G_M57783_IG04
and eax, -2
mov dword ptr [rcx], eax
- ;; size=35 bbWeight=1 PerfScore 7.50+ ;; size=31 bbWeight=1 PerfScore 7.00
G_M57783_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
@@ -41,7 +39,7 @@ G_M57783_IG05: ; bbWeight=0, epilog, nogc, extend
tail.jmp [System.Threading.SpinLock:ExitSlowPath(bool):this]
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 0, PerfScore 8.50, instruction count 14, allocated bytes for code 45 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)+; Total bytes of code 41, prolog size 0, PerfScore 8.00, instruction count 12, allocated bytes for code 41 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)
; ============================================================
Unwind Info:
-2 (-7.14%) : 54794.dasm - Microsoft.Data.Sqlite.SqliteConnection:BeginTransaction(int):Microsoft.Data.Sqlite.SqliteTransaction:this (FullOpts)
@@ -18,16 +18,15 @@ G_M23909_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23909_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
cmp edx, 256
- sete r8b- movzx r8, r8b+ setzue r8b
mov rax, qword ptr [rcx]
mov rax, qword ptr [rax+0xC8]
- ;; size=24 bbWeight=1 PerfScore 5.50+ ;; size=22 bbWeight=1 PerfScore 5.25
G_M23909_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [rax+0x38]<unknown method>
;; size=4 bbWeight=1 PerfScore 2.00
-; Total bytes of code 28, prolog size 0, PerfScore 7.50, instruction count 6, allocated bytes for code 28 (MethodHash=1b3fa29a) for method Microsoft.Data.Sqlite.SqliteConnection:BeginTransaction(int):Microsoft.Data.Sqlite.SqliteTransaction:this (FullOpts)+; Total bytes of code 26, prolog size 0, PerfScore 7.25, instruction count 5, allocated bytes for code 26 (MethodHash=1b3fa29a) for method Microsoft.Data.Sqlite.SqliteConnection:BeginTransaction(int):Microsoft.Data.Sqlite.SqliteTransaction:this (FullOpts)
; ============================================================
Unwind Info:
-2 (-5.71%) : 189859.dasm - NLog.ScopeContext:SetAsyncLocalContext(NLog.Internal.IScopeContextAsyncState) (Tier1)
@@ -23,14 +23,13 @@ G_M17350_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
mov rcx, gword ptr [r8]
; gcrRegs +[rcx]
cmp gword ptr [rcx+0x08], 0
- setne r8b- movzx r8, r8b- ;; size=26 bbWeight=1 PerfScore 6.50+ setzune r8b+ ;; size=24 bbWeight=1 PerfScore 6.25
G_M17350_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 35, prolog size 3, PerfScore 8.75, instruction count 7, allocated bytes for code 35 (MethodHash=add7bc39) for method NLog.ScopeContext:SetAsyncLocalContext(NLog.Internal.IScopeContextAsyncState) (Tier1)+; Total bytes of code 33, prolog size 3, PerfScore 8.50, instruction count 6, allocated bytes for code 33 (MethodHash=add7bc39) for method NLog.ScopeContext:SetAsyncLocalContext(NLog.Internal.IScopeContextAsyncState) (Tier1)
; ============================================================
Unwind Info:
+3 (+18.75%) : 28434.dasm - System.Double:op_Inequality(double,double):bool (Tier1)
@@ -19,18 +19,15 @@ G_M47944_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M47944_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setp al+ setzup al
jp SHORT G_M47944_IG03
- setne al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M47944_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Tier1)
; ============================================================
Unwind Info:
+3 (+12.00%) : 56700.dasm - Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):bool:this (FullOpts)
@@ -190,9 +190,9 @@ G_M48997_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs +[rcx]
mov qword ptr [rcx], rax
cmp edx, r9d
- sete al+ setzue al
movzx rax, al
- ;; size=18 bbWeight=1 PerfScore 3.75+ ;; size=21 bbWeight=1 PerfScore 3.75
G_M48997_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
ret @@ -202,7 +202,7 @@ G_M48997_IG04: ; bbWeight=1, gcVars=0000000000000000 {}, gcrefRegs=0000 {
int3 ;; size=1 bbWeight=1 PerfScore 0.25
-; Total bytes of code 25, prolog size 4, PerfScore 6.75, instruction count 11, allocated bytes for code 25 (MethodHash=2065409a) for method Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):bool:this (FullOpts)+; Total bytes of code 28, prolog size 4, PerfScore 6.75, instruction count 11, allocated bytes for code 28 (MethodHash=2065409a) for method Xunit.Sdk.AssertEqualityComparer`1[int]:Equals(int,Xunit.Sdk.CollectionTracker,int,Xunit.Sdk.CollectionTracker,byref):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+12.00%) : 35388.dasm - (dynamicClass):lambda_method82(System.Runtime.CompilerServices.Closure,Microsoft.EntityFrameworkCore.Benchmarks.Models.Orders.Product):bool (FullOpts)
@@ -26,19 +26,16 @@ G_M10061_IG02: ; bbWeight=1, gcrefRegs=0004 {rdx}, byrefRegs=0000 {}, byr
vmovsd xmm0, qword ptr [rdx+0x30]
vxorps xmm1, xmm1, xmm1
vucomisd xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M10061_IG03
- sete al- ;; size=21 bbWeight=1 PerfScore 9.33-G_M10061_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ setzue al+ ;; size=27 bbWeight=1 PerfScore 9.33+G_M10061_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; gcrRegs -[rdx]
- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M10061_IG04: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 25, prolog size 0, PerfScore 10.58, instruction count 8, allocated bytes for code 25 (MethodHash=7044d8b2) for method (dynamicClass):lambda_method82(System.Runtime.CompilerServices.Closure,Microsoft.EntityFrameworkCore.Benchmarks.Models.Orders.Product):bool (FullOpts)+; Total bytes of code 28, prolog size 0, PerfScore 10.33, instruction count 7, allocated bytes for code 28 (MethodHash=7044d8b2) for method (dynamicClass):lambda_method82(System.Runtime.CompilerServices.Closure,Microsoft.EntityFrameworkCore.Benchmarks.Models.Orders.Product):bool (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run.windows.x64.checked.mch
-2 (-4.55%) : 28383.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)
@@ -23,8 +23,7 @@ G_M16812_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=3 bbWeight=1 PerfScore 0.25
G_M16812_IG02: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
cmp dword ptr [rax+0x88], 3
- sete r9b- movzx r9, r9b+ setzue r9b
mov rcx, gword ptr [rax+0xA0]
; gcrRegs +[rcx]
mov rcx, gword ptr [rcx+0x18]
@@ -32,12 +31,12 @@ G_M16812_IG02: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov rdx, rax
; gcrRegs +[rdx]
cmp dword ptr [rcx], ecx
- ;; size=35 bbWeight=1 PerfScore 11.75+ ;; size=33 bbWeight=1 PerfScore 11.50
G_M16812_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:GetCustomAttributesToEmit(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,bool,bool):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 44, prolog size 3, PerfScore 14.00, instruction count 10, allocated bytes for code 44 (MethodHash=bc3abe53) for method Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)+; Total bytes of code 42, prolog size 3, PerfScore 13.75, instruction count 9, allocated bytes for code 42 (MethodHash=bc3abe53) for method Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)
; ============================================================
Unwind Info:
-12 (-4.46%) : 8012.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)
@@ -112,9 +112,8 @@ G_M40295_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 8
- setne r9b- movzx r9, r9b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r9b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 2
je SHORT G_M40295_IG10
@@ -125,9 +124,8 @@ G_M40295_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M40295_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 2
- setne al- movzx rax, al- ;; size=9 bbWeight=0.50 PerfScore 0.75+ setzune al+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 256
je SHORT G_M40295_IG13
@@ -138,9 +136,8 @@ G_M40295_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test edx, 256
- setne r10b- movzx r10, r10b- ;; size=14 bbWeight=0.50 PerfScore 0.75+ setzune r10b+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M40295_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 32
je SHORT G_M40295_IG16
@@ -151,9 +148,8 @@ G_M40295_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 32
- setne r11b- movzx r11, r11b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r11b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 16
je SHORT G_M40295_IG19
@@ -164,25 +160,22 @@ G_M40295_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=9 bbWeight=0.50 PerfScore 1.12
G_M40295_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 16
- setne r16b- movzx r16, r16b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r16b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG20: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 64
- setne r17b- movzx r17, r17b+ setzune r17b
test cl, 128
je SHORT G_M40295_IG22
- ;; size=16 bbWeight=1 PerfScore 2.75+ ;; size=14 bbWeight=1 PerfScore 2.50
G_M40295_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r18, 1
jmp SHORT G_M40295_IG23
;; size=9 bbWeight=0.50 PerfScore 1.12
G_M40295_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 128
- setne r18b- movzx r18, r18b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r18b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 512
je SHORT G_M40295_IG25
@@ -193,9 +186,8 @@ G_M40295_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M40295_IG25: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test edx, 512
- setne cl- movzx rcx, cl- ;; size=12 bbWeight=0.50 PerfScore 0.75+ setzune cl+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M40295_IG26: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x20], r11d
mov dword ptr [rsp+0x28], r16
@@ -215,7 +207,7 @@ G_M40295_IG27: ; bbWeight=1, epilog, nogc, extend
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 269, prolog size 10, PerfScore 38.75, instruction count 75, allocated bytes for code 269 (MethodHash=b3ad6298) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)+; Total bytes of code 257, prolog size 10, PerfScore 37.62, instruction count 67, allocated bytes for code 257 (MethodHash=b3ad6298) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)
; ============================================================
Unwind Info:
-8 (-4.15%) : 6244.dasm - SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)
@@ -68,29 +68,25 @@ G_M20728_IG03: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
G_M20728_IG04: ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
test bl, 2
- setne r9b- movzx r9, r9b+ setzune r9b
mov dword ptr [rsp+0x20], r9d
mov r9d, ebx
and r9d, 1
mov dword ptr [rsp+0x28], r9d
test bl, 8
- setne r9b- movzx r9, r9b+ setzune r9b
mov dword ptr [rsp+0x30], r9d
test bl, 4
- setne r9b- movzx r9, r9b+ setzune r9b
cmp ebx, 7
- setg r8b- movzx r8, r8b+ setzug r8b
mov rcx, rsi
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx rsi] +[rax]
; gcr arg pop 0
nop - ;; size=76 bbWeight=1 PerfScore 13.00+ ;; size=68 bbWeight=1 PerfScore 12.00
G_M20728_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 64
pop rbx
@@ -99,7 +95,7 @@ G_M20728_IG05: ; bbWeight=1, epilog, nogc, extend
ret ;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 193, prolog size 7, PerfScore 26.75, instruction count 49, allocated bytes for code 193 (MethodHash=8e0baf07) for method SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)+; Total bytes of code 185, prolog size 7, PerfScore 25.75, instruction count 45, allocated bytes for code 185 (MethodHash=8e0baf07) for method SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)
; ============================================================
Unwind Info:
+3 (+4.62%) : 27395.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)
@@ -35,10 +35,10 @@ G_M27569_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
test dl, 64
je SHORT G_M27569_IG06
test edx, 256
- sete al+ setzue al
; gcrRegs -[rax]
movzx rax, al
- ;; size=38 bbWeight=0.50 PerfScore 5.00+ ;; size=41 bbWeight=0.50 PerfScore 5.00
G_M27569_IG04: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
@@ -58,7 +58,7 @@ G_M27569_IG08: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
tail.jmp [Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsOverride():bool:this]
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 65, prolog size 0, PerfScore 11.00, instruction count 19, allocated bytes for code 65 (MethodHash=4b0b944e) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)+; Total bytes of code 68, prolog size 0, PerfScore 11.00, instruction count 19, allocated bytes for code 68 (MethodHash=4b0b944e) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+4.11%) : 27726.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)
@@ -57,14 +57,14 @@ G_M51419_IG07: ; bbWeight=0.50, epilog, nogc, extend
;; size=1 bbWeight=0.50 PerfScore 0.50
G_M51419_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
cmp r8d, 68
- setne al+ setzune al
movzx rax, al
- ;; size=10 bbWeight=0.50 PerfScore 0.75+ ;; size=13 bbWeight=0.50 PerfScore 0.75
G_M51419_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 73, prolog size 0, PerfScore 9.88, instruction count 22, allocated bytes for code 73 (MethodHash=e5843724) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)+; Total bytes of code 76, prolog size 0, PerfScore 9.88, instruction count 22, allocated bytes for code 76 (MethodHash=e5843724) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.19%) : 5321.dasm - System.Text.RegularExpressions.RegexCaseEquivalences:g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)
@@ -37,9 +37,9 @@ G_M3299_IG04: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, b
cmp edx, 2
jbe SHORT G_M3299_IG12
cmp word ptr [rcx+0x10], 45
- sete al+ setzue al
movzx rax, al
- ;; size=16 bbWeight=0.50 PerfScore 2.75+ ;; size=19 bbWeight=0.50 PerfScore 2.75
G_M3299_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret @@ -77,7 +77,7 @@ G_M3299_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 94, prolog size 4, PerfScore 15.88, instruction count 32, allocated bytes for code 94 (MethodHash=cd7af31c) for method System.Text.RegularExpressions.RegexCaseEquivalences:<GetRegexBehavior>g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)+; Total bytes of code 97, prolog size 4, PerfScore 15.88, instruction count 32, allocated bytes for code 97 (MethodHash=cd7af31c) for method System.Text.RegularExpressions.RegexCaseEquivalences:<GetRegexBehavior>g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)
; ============================================================
Unwind Info:
benchmarks.run_pgo.windows.x64.checked.mch
-4 (-8.89%) : 87991.dasm - System.Threading.SpinLock:Exit(bool):this (Tier1)
@@ -21,16 +21,14 @@ G_M57783_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, dword ptr [rcx]
test eax, 0xD1FFAB1E
- setne r8b- movzx r8, r8b+ setzune r8b
test dl, dl
- sete r10b- movzx r10, r10b+ setzue r10b
test r8d, r10d
je SHORT G_M57783_IG04
and eax, -2
mov dword ptr [rcx], eax
- ;; size=35 bbWeight=1 PerfScore 7.50+ ;; size=31 bbWeight=1 PerfScore 7.00
G_M57783_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
@@ -41,7 +39,7 @@ G_M57783_IG05: ; bbWeight=0, epilog, nogc, extend
tail.jmp [System.Threading.SpinLock:ExitSlowPath(bool):this]
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 0, PerfScore 8.50, instruction count 14, allocated bytes for code 45 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)+; Total bytes of code 41, prolog size 0, PerfScore 8.00, instruction count 12, allocated bytes for code 41 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)
; ============================================================
Unwind Info:
-2 (-7.69%) : 92783.dasm - System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass318_0:g__EmitMultiChar|19(System.Text.RegularExpressions.RegexNode,bool):this (Tier1)
@@ -22,16 +22,15 @@ G_M23934_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M23934_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx rdx]
test byte ptr [rdx+0x28], 64
- setne r9b- movzx r9, r9b+ setzune r9b
mov rdx, gword ptr [rdx+0x10]
movzx r8, r8b
- ;; size=20 bbWeight=1 PerfScore 6.50+ ;; size=18 bbWeight=1 PerfScore 6.25
G_M23934_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass318_0:<EmitTryMatchAtCurrentPosition>g__EmitMultiCharString|20(System.String,bool,bool):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 26, prolog size 0, PerfScore 8.50, instruction count 6, allocated bytes for code 26 (MethodHash=23daa281) for method System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass318_0:<EmitTryMatchAtCurrentPosition>g__EmitMultiChar|19(System.Text.RegularExpressions.RegexNode,bool):this (Tier1)+; Total bytes of code 24, prolog size 0, PerfScore 8.25, instruction count 5, allocated bytes for code 24 (MethodHash=23daa281) for method System.Text.RegularExpressions.RegexCompiler+<>c__DisplayClass318_0:<EmitTryMatchAtCurrentPosition>g__EmitMultiChar|19(System.Text.RegularExpressions.RegexNode,bool):this (Tier1)
; ============================================================
Unwind Info:
-8 (-5.41%) : 128844.dasm - System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[char]):bool (Tier1)
@@ -35,11 +35,11 @@ G_M50304_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
mov ecx, dword ptr [rcx+0x08]
; byrRegs -[rcx]
cmp ecx, 2
- jl G_M50304_IG13+ jl SHORT G_M50304_IG13
movzx rax, word ptr [rdx]
cmp eax, 92
jne SHORT G_M50304_IG07
- ;; size=23 bbWeight=1 PerfScore 8.50+ ;; size=19 bbWeight=1 PerfScore 8.50
G_M50304_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byref, isz
movzx r8, word ptr [rdx+0x02]
cmp r8d, 63
@@ -51,9 +51,8 @@ G_M50304_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byr
G_M50304_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rdx]
test eax, eax
- sete r8b- movzx r8, r8b- ;; size=10 bbWeight=1 PerfScore 1.50+ setzue r8b+ ;; size=8 bbWeight=1 PerfScore 1.25
G_M50304_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
movzx rax, r8b
;; size=4 bbWeight=1 PerfScore 0.25
@@ -69,8 +68,7 @@ G_M50304_IG07: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
G_M50304_IG08: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
; byrRegs -[rdx]
cmp r8d, 47
- sete al- movzx rax, al+ setzue al
jmp SHORT G_M50304_IG04
;; size=12 bbWeight=0 PerfScore 0.00
G_M50304_IG09: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
@@ -90,8 +88,7 @@ G_M50304_IG11: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {
cmp eax, 92
je SHORT G_M50304_IG12
cmp eax, 47
- sete al- movzx rax, al+ setzue al
test eax, eax
je SHORT G_M50304_IG13
;; size=38 bbWeight=0 PerfScore 0.00
@@ -100,10 +97,9 @@ G_M50304_IG12: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byr
or eax, 32
add eax, -97
cmp eax, 25
- seta r8b- movzx r8, r8b+ setzua r8b
jmp SHORT G_M50304_IG05
- ;; size=22 bbWeight=0 PerfScore 0.00+ ;; size=20 bbWeight=0 PerfScore 0.00
G_M50304_IG13: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
; byrRegs -[rdx]
mov eax, 1
@@ -112,7 +108,7 @@ G_M50304_IG14: ; bbWeight=0, epilog, nogc, extend
ret ;; size=1 bbWeight=0 PerfScore 0.00
-; Total bytes of code 148, prolog size 0, PerfScore 16.00, instruction count 49, allocated bytes for code 148 (MethodHash=affd3b7f) for method System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[char]):bool (Tier1)+; Total bytes of code 140, prolog size 0, PerfScore 15.75, instruction count 45, allocated bytes for code 140 (MethodHash=affd3b7f) for method System.IO.PathInternal:IsPartiallyQualified(System.ReadOnlySpan`1[char]):bool (Tier1)
; ============================================================
Unwind Info:
+3 (+18.75%) : 34564.dasm - System.Double:op_Inequality(double,double):bool (Tier1)
@@ -19,18 +19,15 @@ G_M47944_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M47944_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setp al+ setzup al
jp SHORT G_M47944_IG03
- setne al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M47944_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Tier1)
; ============================================================
Unwind Info:
+3 (+9.38%) : 45452.dasm - System.Double:IsNaN(double):bool (Instrumented Tier0)
@@ -19,19 +19,16 @@ G_M63013_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M63013_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vmovsd xmm0, qword ptr [rbp+0x10]
vucomisd xmm0, qword ptr [rbp+0x10]
- setp al+ setzup al
jp SHORT G_M63013_IG03
- setne al- ;; size=18 bbWeight=1 PerfScore 10.00-G_M63013_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M63013_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=24 bbWeight=1 PerfScore 10.00+G_M63013_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop rbp
ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 4, PerfScore 14.00, instruction count 11, allocated bytes for code 32 (MethodHash=3f0d09da) for method System.Double:IsNaN(double):bool (Instrumented Tier0)+; Total bytes of code 35, prolog size 4, PerfScore 13.75, instruction count 10, allocated bytes for code 35 (MethodHash=3f0d09da) for method System.Double:IsNaN(double):bool (Instrumented Tier0)
; ============================================================
Unwind Info:
+3 (+9.38%) : 28927.dasm - System.Single:IsNaN(float):bool (Tier0)
@@ -19,19 +19,16 @@ G_M463_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, n
G_M463_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vmovss xmm0, dword ptr [rbp+0x10]
vucomiss xmm0, dword ptr [rbp+0x10]
- setp al+ setzup al
jp SHORT G_M463_IG03
- setne al- ;; size=18 bbWeight=1 PerfScore 10.00-G_M463_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M463_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=24 bbWeight=1 PerfScore 10.00+G_M463_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
pop rbp
ret ;; size=2 bbWeight=1 PerfScore 1.50
-; Total bytes of code 32, prolog size 4, PerfScore 14.00, instruction count 11, allocated bytes for code 32 (MethodHash=402ffe30) for method System.Single:IsNaN(float):bool (Tier0)+; Total bytes of code 35, prolog size 4, PerfScore 13.75, instruction count 10, allocated bytes for code 35 (MethodHash=402ffe30) for method System.Single:IsNaN(float):bool (Tier0)
; ============================================================
Unwind Info:
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch
-2 (-4.55%) : 28405.dasm - Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)
@@ -23,8 +23,7 @@ G_M16812_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=3 bbWeight=1 PerfScore 0.25
G_M16812_IG02: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byref
cmp dword ptr [rax+0x88], 3
- sete r9b- movzx r9, r9b+ setzue r9b
mov rcx, gword ptr [rax+0xA0]
; gcrRegs +[rcx]
mov rcx, gword ptr [rcx+0x18]
@@ -32,12 +31,12 @@ G_M16812_IG02: ; bbWeight=1, gcrefRegs=0001 {rax}, byrefRegs=0000 {}, byr
mov rdx, rax
; gcrRegs +[rdx]
cmp dword ptr [rcx], ecx
- ;; size=35 bbWeight=1 PerfScore 11.75+ ;; size=33 bbWeight=1 PerfScore 11.50
G_M16812_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [Microsoft.CodeAnalysis.CSharp.Symbols.SourceAssemblySymbol:GetCustomAttributesToEmit(Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder,bool,bool):System.Collections.Generic.IEnumerable`1[Microsoft.CodeAnalysis.CSharp.Symbols.CSharpAttributeData]:this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 44, prolog size 3, PerfScore 14.00, instruction count 10, allocated bytes for code 44 (MethodHash=bc3abe53) for method Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)+; Total bytes of code 42, prolog size 3, PerfScore 13.75, instruction count 9, allocated bytes for code 42 (MethodHash=bc3abe53) for method Microsoft.CodeAnalysis.CSharp.Emit.PEModuleBuilder:GetSourceAssemblyAttributes(bool):System.Collections.Generic.IEnumerable`1[Microsoft.Cci.ICustomAttribute]:this (FullOpts)
; ============================================================
Unwind Info:
-12 (-4.46%) : 7824.dasm - System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)
@@ -112,9 +112,8 @@ G_M40295_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 8
- setne r9b- movzx r9, r9b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r9b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG08: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 2
je SHORT G_M40295_IG10
@@ -125,9 +124,8 @@ G_M40295_IG09: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M40295_IG10: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 2
- setne al- movzx rax, al- ;; size=9 bbWeight=0.50 PerfScore 0.75+ setzune al+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG11: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 256
je SHORT G_M40295_IG13
@@ -138,9 +136,8 @@ G_M40295_IG12: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG13: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test edx, 256
- setne r10b- movzx r10, r10b- ;; size=14 bbWeight=0.50 PerfScore 0.75+ setzune r10b+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M40295_IG14: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 32
je SHORT G_M40295_IG16
@@ -151,9 +148,8 @@ G_M40295_IG15: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=8 bbWeight=0.50 PerfScore 1.12
G_M40295_IG16: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 32
- setne r11b- movzx r11, r11b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r11b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG17: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 16
je SHORT G_M40295_IG19
@@ -164,25 +160,22 @@ G_M40295_IG18: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=9 bbWeight=0.50 PerfScore 1.12
G_M40295_IG19: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 16
- setne r16b- movzx r16, r16b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r16b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG20: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test cl, 64
- setne r17b- movzx r17, r17b+ setzune r17b
test cl, 128
je SHORT G_M40295_IG22
- ;; size=16 bbWeight=1 PerfScore 2.75+ ;; size=14 bbWeight=1 PerfScore 2.50
G_M40295_IG21: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
mov r18, 1
jmp SHORT G_M40295_IG23
;; size=9 bbWeight=0.50 PerfScore 1.12
G_M40295_IG22: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, 128
- setne r18b- movzx r18, r18b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r18b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M40295_IG23: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 512
je SHORT G_M40295_IG25
@@ -193,9 +186,8 @@ G_M40295_IG24: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byr
;; size=7 bbWeight=0.50 PerfScore 1.12
G_M40295_IG25: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test edx, 512
- setne cl- movzx rcx, cl- ;; size=12 bbWeight=0.50 PerfScore 0.75+ setzune cl+ ;; size=12 bbWeight=0.50 PerfScore 0.62
G_M40295_IG26: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x20], r11d
mov dword ptr [rsp+0x28], r16
@@ -215,7 +207,7 @@ G_M40295_IG27: ; bbWeight=1, epilog, nogc, extend
ret ;; size=6 bbWeight=1 PerfScore 1.75
-; Total bytes of code 269, prolog size 10, PerfScore 38.75, instruction count 75, allocated bytes for code 269 (MethodHash=b3ad6298) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)+; Total bytes of code 257, prolog size 10, PerfScore 37.62, instruction count 67, allocated bytes for code 257 (MethodHash=b3ad6298) for method System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo:Alternate(System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo,System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo):System.Text.RegularExpressions.Symbolic.SymbolicRegexInfo (FullOpts)
; ============================================================
Unwind Info:
-8 (-4.15%) : 4729.dasm - SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)
@@ -68,29 +68,25 @@ G_M20728_IG03: ; bbWeight=0.50, gcrefRegs=0040 {rsi}, byrefRegs=0000 {},
G_M20728_IG04: ; bbWeight=1, gcrefRegs=0044 {rdx rsi}, byrefRegs=0000 {}, byref
; gcrRegs -[rdi]
test bl, 2
- setne r9b- movzx r9, r9b+ setzune r9b
mov dword ptr [rsp+0x20], r9d
mov r9d, ebx
and r9d, 1
mov dword ptr [rsp+0x28], r9d
test bl, 8
- setne r9b- movzx r9, r9b+ setzune r9b
mov dword ptr [rsp+0x30], r9d
test bl, 4
- setne r9b- movzx r9, r9b+ setzune r9b
cmp ebx, 7
- setg r8b- movzx r8, r8b+ setzug r8b
mov rcx, rsi
; gcrRegs +[rcx]
call [<unknown method>]
; gcrRegs -[rcx rdx rsi] +[rax]
; gcr arg pop 0
nop - ;; size=76 bbWeight=1 PerfScore 13.00+ ;; size=68 bbWeight=1 PerfScore 12.00
G_M20728_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 64
pop rbx
@@ -99,7 +95,7 @@ G_M20728_IG05: ; bbWeight=1, epilog, nogc, extend
ret ;; size=8 bbWeight=1 PerfScore 2.75
-; Total bytes of code 193, prolog size 7, PerfScore 26.75, instruction count 49, allocated bytes for code 193 (MethodHash=8e0baf07) for method SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)+; Total bytes of code 185, prolog size 7, PerfScore 25.75, instruction count 45, allocated bytes for code 185 (MethodHash=8e0baf07) for method SIMD.ConsoleMandel:GetRenderer(System.Action`3[int,int,int],int):Algorithms.FractalRenderer+Render (FullOpts)
; ============================================================
Unwind Info:
+3 (+4.62%) : 27417.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)
@@ -35,10 +35,10 @@ G_M27569_IG03: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
test dl, 64
je SHORT G_M27569_IG06
test edx, 256
- sete al+ setzue al
; gcrRegs -[rax]
movzx rax, al
- ;; size=38 bbWeight=0.50 PerfScore 5.00+ ;; size=41 bbWeight=0.50 PerfScore 5.00
G_M27569_IG04: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
@@ -58,7 +58,7 @@ G_M27569_IG08: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {},
tail.jmp [Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsOverride():bool:this]
;; size=6 bbWeight=0.50 PerfScore 1.00
-; Total bytes of code 65, prolog size 0, PerfScore 11.00, instruction count 19, allocated bytes for code 65 (MethodHash=4b0b944e) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)+; Total bytes of code 68, prolog size 0, PerfScore 11.00, instruction count 19, allocated bytes for code 68 (MethodHash=4b0b944e) for method Microsoft.CodeAnalysis.CSharp.Symbols.Metadata.PE.PEMethodSymbol:get_IsSealed():bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+4.11%) : 27748.dasm - Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)
@@ -57,14 +57,14 @@ G_M51419_IG07: ; bbWeight=0.50, epilog, nogc, extend
;; size=1 bbWeight=0.50 PerfScore 0.50
G_M51419_IG08: ; bbWeight=0.50, gcVars=0000000000000000 {}, gcrefRegs=0000 {}, byrefRegs=0000 {}, gcvars, byref
cmp r8d, 68
- setne al+ setzune al
movzx rax, al
- ;; size=10 bbWeight=0.50 PerfScore 0.75+ ;; size=13 bbWeight=0.50 PerfScore 0.75
G_M51419_IG09: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 73, prolog size 0, PerfScore 9.88, instruction count 22, allocated bytes for code 73 (MethodHash=e5843724) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)+; Total bytes of code 76, prolog size 0, PerfScore 9.88, instruction count 22, allocated bytes for code 76 (MethodHash=e5843724) for method Microsoft.CodeAnalysis.CSharp.Binder:IsTypelessExpressionAllowedInBinaryOperator(int,Microsoft.CodeAnalysis.CSharp.BoundExpression,Microsoft.CodeAnalysis.CSharp.BoundExpression):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.19%) : 4122.dasm - System.Text.RegularExpressions.RegexCaseEquivalences:g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)
@@ -37,9 +37,9 @@ G_M3299_IG04: ; bbWeight=0.50, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, b
cmp edx, 2
jbe SHORT G_M3299_IG12
cmp word ptr [rcx+0x10], 45
- sete al+ setzue al
movzx rax, al
- ;; size=16 bbWeight=0.50 PerfScore 2.75+ ;; size=19 bbWeight=0.50 PerfScore 2.75
G_M3299_IG05: ; bbWeight=0.50, epilog, nogc, extend
add rsp, 40
ret @@ -77,7 +77,7 @@ G_M3299_IG12: ; bbWeight=0, gcVars=0000000000000000 {}, gcrefRegs=0000 {}
int3 ;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 94, prolog size 4, PerfScore 15.88, instruction count 32, allocated bytes for code 94 (MethodHash=cd7af31c) for method System.Text.RegularExpressions.RegexCaseEquivalences:<GetRegexBehavior>g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)+; Total bytes of code 97, prolog size 4, PerfScore 15.88, instruction count 32, allocated bytes for code 97 (MethodHash=cd7af31c) for method System.Text.RegularExpressions.RegexCaseEquivalences:<GetRegexBehavior>g__IsTurkishOrAzeri|8_0(System.String):bool (FullOpts)
; ============================================================
Unwind Info:
coreclr_tests.run.windows.x64.checked.mch
-2 (-8.33%) : 330019.dasm - System.Runtime.CompilerServices.StaticsHelpers:GetThreadStaticsByIndex(System.Runtime.CompilerServices.ByteRefOnStack,int,bool) (FullOpts)
@@ -23,15 +23,14 @@ G_M17760_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=7 bbWeight=1 PerfScore 2.25
G_M17760_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test r8b, r8b
- setne r8b- movzx r8, r8b- ;; size=11 bbWeight=1 PerfScore 1.50+ setzune r8b+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M17760_IG03: ; bbWeight=1, epilog, nogc, extend
pop rbp
jmp <unknown method>
;; size=6 bbWeight=1 PerfScore 2.50
-; Total bytes of code 24, prolog size 7, PerfScore 6.25, instruction count 8, allocated bytes for code 24 (MethodHash=a2a7ba9f) for method System.Runtime.CompilerServices.StaticsHelpers:GetThreadStaticsByIndex(System.Runtime.CompilerServices.ByteRefOnStack,int,bool) (FullOpts)+; Total bytes of code 22, prolog size 7, PerfScore 6.00, instruction count 7, allocated bytes for code 22 (MethodHash=a2a7ba9f) for method System.Runtime.CompilerServices.StaticsHelpers:GetThreadStaticsByIndex(System.Runtime.CompilerServices.ByteRefOnStack,int,bool) (FullOpts)
; ============================================================
Unwind Info:
-26 (-6.34%) : 211903.dasm - (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool):ptr (FullOpts)
@@ -80,53 +80,37 @@ G_M25614_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x80]
mov qword ptr [r13+0x08], rcx
test bl, bl
- setne cl- movzx rcx, cl+ setzune cl
test sil, sil
- setne dl- movzx rdx, dl+ setzune dl
test dil, dil
- setne r8b- movzx r8, r8b+ setzune r8b
test r14b, r14b
- setne r9b- movzx r9, r9b+ setzune r9b
cmp byte ptr [rbp+0x30], 0
- setne al- movzx rax, al+ setzune al
cmp byte ptr [rbp+0x38], 0
- setne r10b- movzx r10, r10b+ setzune r10b
cmp byte ptr [rbp+0x40], 0
- setne r11b- movzx r11, r11b+ setzune r11b
cmp byte ptr [rbp+0x48], 0
- setne r16b- movzx r16, r16b+ setzune r16b
cmp byte ptr [rbp+0x50], 0
- setne r17b- movzx r17, r17b+ setzune r17b
cmp byte ptr [rbp+0x58], 0
- setne r18b- movzx r18, r18b+ setzune r18b
cmp byte ptr [rbp+0x60], 0
- setne r19b- movzx r19, r19b+ setzune r19b
cmp byte ptr [rbp+0x68], 0
- setne r20b- movzx r20, r20b+ setzune r20b
cmp byte ptr [rbp+0x70], 0
- setne r21b- movzx r21, r21b+ setzune r21b
cmp byte ptr [rbp+0x78], 0
- setne r22b- movzx r22, r22b+ setzune r22b
cmp byte ptr [rbp+0x80], 0
- setne r23b- movzx r23, r23b+ setzune r23b
cmp byte ptr [rbp+0x88], 0
- setne r24b- movzx r24, r24b+ setzune r24b
mov r25, qword ptr [r15+0x50]
mov dword ptr [rsp+0x20], eax
mov dword ptr [rsp+0x28], r10d
@@ -141,26 +125,24 @@ G_M25614_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x70], r23
mov dword ptr [rsp+0x78], r24
mov qword ptr [rbp-0x70], r15
- ;; size=302 bbWeight=1 PerfScore 66.75-G_M25614_IG03: ; bbWeight=1, extend- lea rax, G_M25614_IG05+ lea rax, G_M25614_IG04
mov qword ptr [rbp-0x60], rax
mov byte ptr [r13+0x04], 0
- ;; size=16 bbWeight=1 PerfScore 3.00-G_M25614_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ ;; size=292 bbWeight=1 PerfScore 65.75+G_M25614_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call r25
;; size=4 bbWeight=1 PerfScore 3.00
-G_M25614_IG05: ; bbWeight=1, isz, extend+G_M25614_IG04: ; bbWeight=1, isz, extend
mov byte ptr [r13+0x04], 1
cmp dword ptr [(reloc)], 0
- je SHORT G_M25614_IG06+ je SHORT G_M25614_IG05
call [CORINFO_HELP_STOP_FOR_GC]
;; size=20 bbWeight=1 PerfScore 8.00
-G_M25614_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M25614_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rcx, qword ptr [rbp-0x78]
mov qword ptr [r13+0x08], rcx
;; size=8 bbWeight=1 PerfScore 2.00
-G_M25614_IG07: ; bbWeight=1, epilog, nogc, extend+G_M25614_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 200
pop rbx
pop rsi
@@ -173,7 +155,7 @@ G_M25614_IG07: ; bbWeight=1, epilog, nogc, extend
ret ;; size=20 bbWeight=1 PerfScore 5.25
-; Total bytes of code 410, prolog size 27, PerfScore 98.00, instruction count 107, allocated bytes for code 410 (MethodHash=429b9bf1) for method (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool):ptr (FullOpts)+; Total bytes of code 384, prolog size 27, PerfScore 94.00, instruction count 91, allocated bytes for code 384 (MethodHash=429b9bf1) for method (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool):ptr (FullOpts)
; ============================================================
Unwind Info:
-26 (-6.12%) : 211901.dasm - (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,ptr) (FullOpts)
@@ -79,53 +79,37 @@ G_M48024_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x80]
mov qword ptr [r13+0x08], rcx
test bl, bl
- setne cl- movzx rcx, cl+ setzune cl
test sil, sil
- setne dl- movzx rdx, dl+ setzune dl
test dil, dil
- setne r8b- movzx r8, r8b+ setzune r8b
test r14b, r14b
- setne r9b- movzx r9, r9b+ setzune r9b
cmp byte ptr [rbp+0x30], 0
- setne al- movzx rax, al+ setzune al
cmp byte ptr [rbp+0x38], 0
- setne r10b- movzx r10, r10b+ setzune r10b
cmp byte ptr [rbp+0x40], 0
- setne r11b- movzx r11, r11b+ setzune r11b
cmp byte ptr [rbp+0x48], 0
- setne r16b- movzx r16, r16b+ setzune r16b
cmp byte ptr [rbp+0x50], 0
- setne r17b- movzx r17, r17b+ setzune r17b
cmp byte ptr [rbp+0x58], 0
- setne r18b- movzx r18, r18b+ setzune r18b
cmp byte ptr [rbp+0x60], 0
- setne r19b- movzx r19, r19b+ setzune r19b
cmp byte ptr [rbp+0x68], 0
- setne r20b- movzx r20, r20b+ setzune r20b
cmp byte ptr [rbp+0x70], 0
- setne r21b- movzx r21, r21b+ setzune r21b
cmp byte ptr [rbp+0x78], 0
- setne r22b- movzx r22, r22b+ setzune r22b
cmp byte ptr [rbp+0x80], 0
- setne r23b- movzx r23, r23b+ setzune r23b
cmp byte ptr [rbp+0x88], 0
- setne r24b- movzx r24, r24b+ setzune r24b
mov r25, qword ptr [r15+0x50]
mov dword ptr [rsp+0x20], eax
mov dword ptr [rsp+0x28], r10d
@@ -140,28 +124,26 @@ G_M48024_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov dword ptr [rsp+0x70], r23
mov dword ptr [rsp+0x78], r24
mov rbx, qword ptr [rbp+0x90]
- ;; size=305 bbWeight=1 PerfScore 66.75-G_M48024_IG03: ; bbWeight=1, extend
mov qword ptr [rsp+0x80], rbx
mov qword ptr [rbp-0x70], r15
- lea rax, G_M48024_IG05+ lea rax, G_M48024_IG04
mov qword ptr [rbp-0x60], rax
mov byte ptr [r13+0x04], 0
- ;; size=28 bbWeight=1 PerfScore 5.00-G_M48024_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ ;; size=307 bbWeight=1 PerfScore 67.75+G_M48024_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call r25
;; size=4 bbWeight=1 PerfScore 3.00
-G_M48024_IG05: ; bbWeight=1, isz, extend+G_M48024_IG04: ; bbWeight=1, isz, extend
mov byte ptr [r13+0x04], 1
cmp dword ptr [(reloc)], 0
- je SHORT G_M48024_IG06+ je SHORT G_M48024_IG05
call [CORINFO_HELP_STOP_FOR_GC]
;; size=20 bbWeight=1 PerfScore 8.00
-G_M48024_IG06: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M48024_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
mov rax, qword ptr [rbp-0x78]
mov qword ptr [r13+0x08], rax
;; size=8 bbWeight=1 PerfScore 2.00
-G_M48024_IG07: ; bbWeight=1, epilog, nogc, extend+G_M48024_IG06: ; bbWeight=1, epilog, nogc, extend
add rsp, 216
pop rbx
pop rsi
@@ -174,7 +156,7 @@ G_M48024_IG07: ; bbWeight=1, epilog, nogc, extend
ret ;; size=20 bbWeight=1 PerfScore 5.25
-; Total bytes of code 425, prolog size 27, PerfScore 100.00, instruction count 109, allocated bytes for code 425 (MethodHash=41fe4467) for method (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,ptr) (FullOpts)+; Total bytes of code 399, prolog size 27, PerfScore 96.00, instruction count 93, allocated bytes for code 399 (MethodHash=41fe4467) for method (dynamicClass):IL_STUB_PInvoke(bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,bool,ptr) (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 414576.dasm - System.Single:op_Equality(float,float):bool (Tier1)
@@ -19,18 +19,15 @@ G_M39616_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M39616_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomiss xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M39616_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M39616_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M39616_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M39616_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=37d5653f) for method System.Single:op_Equality(float,float):bool (Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=37d5653f) for method System.Single:op_Equality(float,float):bool (Tier1)
; ============================================================
Unwind Info:
+3 (+18.75%) : 414566.dasm - System.Double:op_Equality(double,double):bool (Tier1)
@@ -19,18 +19,15 @@ G_M65327_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M65327_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M65327_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M65327_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M65327_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M65327_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=fc6e00d0) for method System.Double:op_Equality(double,double):bool (Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=fc6e00d0) for method System.Double:op_Equality(double,double):bool (Tier1)
; ============================================================
Unwind Info:
+3 (+18.75%) : 360412.dasm - System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (Tier1)
@@ -19,18 +19,15 @@ G_M50164_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M50164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomiss xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M50164_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M50164_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M50164_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M50164_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=bc063c0b) for method System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=bc063c0b) for method System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (Tier1)
; ============================================================
Unwind Info:
libraries.pmi.windows.x64.checked.mch
-2 (-11.76%) : 195703.dasm - Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient:WriteDump(int,System.String,bool):this (FullOpts)
@@ -27,14 +27,13 @@ G_M29183_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M29183_IG02: ; bbWeight=1, gcrefRegs=0102 {rcx r8}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx r8]
test r9b, r9b
- setne r9b- movzx r9, r9b- ;; size=11 bbWeight=1 PerfScore 1.50+ setzune r9b+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M29183_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 17, prolog size 0, PerfScore 3.50, instruction count 4, allocated bytes for code 17 (MethodHash=a0558e00) for method Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient:WriteDump(int,System.String,bool):this (FullOpts)+; Total bytes of code 15, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 15 (MethodHash=a0558e00) for method Microsoft.Diagnostics.NETCore.Client.DiagnosticsClient:WriteDump(int,System.String,bool):this (FullOpts)
; ============================================================
Unwind Info:
-2 (-11.76%) : 248942.dasm - System.Net.Sockets.Socket:SetSocketOption(int,int,bool):this (FullOpts)
@@ -20,14 +20,13 @@ G_M5040_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M5040_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx]
test r9b, r9b
- setne r9b- movzx r9, r9b- ;; size=11 bbWeight=1 PerfScore 1.50+ setzune r9b+ ;; size=9 bbWeight=1 PerfScore 1.25
G_M5040_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.Net.Sockets.Socket:SetSocketOption(int,int,int):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 17, prolog size 0, PerfScore 3.50, instruction count 4, allocated bytes for code 17 (MethodHash=be9aec4f) for method System.Net.Sockets.Socket:SetSocketOption(int,int,bool):this (FullOpts)+; Total bytes of code 15, prolog size 0, PerfScore 3.25, instruction count 3, allocated bytes for code 15 (MethodHash=be9aec4f) for method System.Net.Sockets.Socket:SetSocketOption(int,int,bool):this (FullOpts)
; ============================================================
Unwind Info:
-2 (-11.11%) : 239105.dasm - System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[System.__Canon]:TryGetFirst(byref):System.__Canon:this (FullOpts)
@@ -19,14 +19,13 @@ G_M41929_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx},
; gcrRegs +[rcx]
; byrRegs +[rdx]
cmp byte ptr [rcx+0x28], 0
- sete r8b- movzx r8, r8b- ;; size=12 bbWeight=1 PerfScore 4.25+ setzue r8b+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M41929_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 18, prolog size 0, PerfScore 6.25, instruction count 4, allocated bytes for code 18 (MethodHash=e2c25c36) for method System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[System.__Canon]:TryGetFirst(byref):System.__Canon:this (FullOpts)+; Total bytes of code 16, prolog size 0, PerfScore 6.00, instruction count 3, allocated bytes for code 16 (MethodHash=e2c25c36) for method System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[System.__Canon]:TryGetFirst(byref):System.__Canon:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 14195.dasm - System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)
@@ -17,18 +17,15 @@ G_M8561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M8561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M8561_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M8561_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M8561_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M8561_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=a219de8e) for method System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=a219de8e) for method System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 69666.dasm - Microsoft.FSharp.Core.Operators+OperatorIntrinsics+RangeSingle@6191-1:Equal(float,float):bool:this (FullOpts)
@@ -18,18 +18,15 @@ G_M53599_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M53599_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomiss xmm1, xmm2
- setnp al+ setzunp al
jp SHORT G_M53599_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M53599_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M53599_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M53599_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=16532ea0) for method Microsoft.FSharp.Core.Operators+OperatorIntrinsics+RangeSingle@6191-1:Equal(float,float):bool:this (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=16532ea0) for method Microsoft.FSharp.Core.Operators+OperatorIntrinsics+RangeSingle@6191-1:Equal(float,float):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 148333.dasm - Microsoft.Build.Evaluation.NotEqualExpressionNode:Compare(double,double):bool:this (FullOpts)
@@ -18,18 +18,15 @@ G_M61779_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M61779_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm1, xmm2
- setp al+ setzup al
jp SHORT G_M61779_IG03
- setne al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M61779_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M61779_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M61779_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=a0790eac) for method Microsoft.Build.Evaluation.NotEqualExpressionNode:Compare(double,double):bool:this (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=a0790eac) for method Microsoft.Build.Evaluation.NotEqualExpressionNode:Compare(double,double):bool:this (FullOpts)
; ============================================================
Unwind Info:
libraries_tests.run.windows.x64.Release.mch
-4 (-8.89%) : 190968.dasm - System.Threading.SpinLock:Exit(bool):this (Tier1)
@@ -21,16 +21,14 @@ G_M57783_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byr
; byrRegs +[rcx]
mov eax, dword ptr [rcx]
test eax, 0xD1FFAB1E
- setne r8b- movzx r8, r8b+ setzune r8b
test dl, dl
- sete r10b- movzx r10, r10b+ setzue r10b
test r8d, r10d
je SHORT G_M57783_IG04
and eax, -2
mov dword ptr [rcx], eax
- ;; size=35 bbWeight=1 PerfScore 7.50+ ;; size=31 bbWeight=1 PerfScore 7.00
G_M57783_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
@@ -41,7 +39,7 @@ G_M57783_IG05: ; bbWeight=0, epilog, nogc, extend
tail.jmp [System.Threading.SpinLock:ExitSlowPath(bool):this]
;; size=6 bbWeight=0 PerfScore 0.00
-; Total bytes of code 45, prolog size 0, PerfScore 8.50, instruction count 14, allocated bytes for code 45 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)+; Total bytes of code 41, prolog size 0, PerfScore 8.00, instruction count 12, allocated bytes for code 41 (MethodHash=9f381e48) for method System.Threading.SpinLock:Exit(bool):this (Tier1)
; ============================================================
Unwind Info:
-11 (-7.28%) : 59796.dasm - Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:AdjustModifiersForAnInterfaceMember(uint,bool,bool,bool):uint (Tier1)
@@ -20,25 +20,24 @@
G_M2212_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, nogc <-- Prolog IG
;; size=0 bbWeight=1 PerfScore 0.00
-G_M2212_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M2212_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 0x4000
- jne G_M2212_IG14+ jne SHORT G_M2212_IG14
mov eax, 1
- ;; size=17 bbWeight=1 PerfScore 1.50+ ;; size=13 bbWeight=1 PerfScore 1.50
G_M2212_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 0x3F0
jne SHORT G_M2212_IG05
;; size=8 bbWeight=1 PerfScore 1.25
G_M2212_IG04: ; bbWeight=0.43, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test r8b, r8b
- sete r10b- movzx r10, r10b+ setzue r10b
mov r9d, ecx
or r9d, 256
or ecx, 16
test r10d, eax
cmove ecx, r9d
- ;; size=31 bbWeight=0.43 PerfScore 1.17+ ;; size=29 bbWeight=0.43 PerfScore 1.07
G_M2212_IG05: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test r8b, r8b
jne SHORT G_M2212_IG13
@@ -49,8 +48,7 @@ G_M2212_IG06: ; bbWeight=0.78, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
;; size=5 bbWeight=0.78 PerfScore 0.97
G_M2212_IG07: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test ecx, 0x20101
- sete r8b- movzx r8, r8b+ setzue r8b
test r8d, eax
je SHORT G_M2212_IG09
movzx rax, dl
@@ -58,7 +56,7 @@ G_M2212_IG07: ; bbWeight=0.62, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
and edx, 0x6002
or eax, edx
jne SHORT G_M2212_IG11
- ;; size=34 bbWeight=0.62 PerfScore 2.94+ ;; size=32 bbWeight=0.62 PerfScore 2.79
G_M2212_IG08: ; bbWeight=0.59, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
or ecx, 1
;; size=3 bbWeight=0.59 PerfScore 0.15
@@ -85,14 +83,13 @@ G_M2212_IG13: ; bbWeight=0.22, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
cmovne ecx, eax
jmp SHORT G_M2212_IG09
;; size=13 bbWeight=0.22 PerfScore 0.67
-G_M2212_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+G_M2212_IG14: ; bbWeight=0, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test r9b, r9b
- sete al- movzx rax, al- jmp G_M2212_IG03- ;; size=14 bbWeight=0 PerfScore 0.00+ setzue al+ jmp SHORT G_M2212_IG03+ ;; size=11 bbWeight=0 PerfScore 0.00-; Total bytes of code 151, prolog size 0, PerfScore 11.60, instruction count 45, allocated bytes for code 151 (MethodHash=26b0f75b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:AdjustModifiersForAnInterfaceMember(uint,bool,bool,bool):uint (Tier1)+; Total bytes of code 140, prolog size 0, PerfScore 11.34, instruction count 42, allocated bytes for code 140 (MethodHash=26b0f75b) for method Microsoft.CodeAnalysis.CSharp.Symbols.ModifierUtils:AdjustModifiersForAnInterfaceMember(uint,bool,bool,bool):uint (Tier1)
; ============================================================
Unwind Info:
-6 (-6.52%) : 682482.dasm - System.Text.RegularExpressions.CompiledRegexRunner:Regex32200_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[char]):bool (FullOpts)
@@ -45,18 +45,15 @@ G_M45082_IG03: ; bbWeight=0.80, gcrefRegs=0002 {rcx}, byrefRegs=0100 {r8}
G_M45082_IG04: ; bbWeight=3.79, gcrefRegs=0002 {rcx}, byrefRegs=0100 {r8}, byref, isz
movzx r10, word ptr [r8+2*rax]
cmp r10d, 32
- sete r9b- movzx r9, r9b+ setzue r9b
cmp r10d, 49
- sete r11b- movzx r11, r11b+ setzue r11b
or r9d, r11d
cmp r10d, 97
- sete r10b- movzx r10, r10b+ setzue r10b
or r10d, r9d
jne SHORT G_M45082_IG08
- ;; size=49 bbWeight=3.79 PerfScore 30.32+ ;; size=43 bbWeight=3.79 PerfScore 27.47
G_M45082_IG05: ; bbWeight=3.41, gcrefRegs=0002 {rcx}, byrefRegs=0100 {r8}, byref, isz
dec eax
cmp eax, edx
@@ -81,7 +78,7 @@ G_M45082_IG09: ; bbWeight=0.38, epilog, nogc, extend
ret ;; size=1 bbWeight=0.38 PerfScore 0.38
-; Total bytes of code 92, prolog size 0, PerfScore 46.23, instruction count 31, allocated bytes for code 92 (MethodHash=0eeb4fe5) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex32200_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[char]):bool (FullOpts)+; Total bytes of code 86, prolog size 0, PerfScore 43.38, instruction count 28, allocated bytes for code 86 (MethodHash=0eeb4fe5) for method System.Text.RegularExpressions.CompiledRegexRunner:Regex32200_TryFindNextPossibleStartingPosition(System.Text.RegularExpressions.RegexRunner,System.ReadOnlySpan`1[char]):bool (FullOpts)
; ============================================================
Unwind Info:
+2 (+20.00%) : 488736.dasm - System.Boolean:System.IConvertible.ToInt64(System.IFormatProvider):long:this (Instrumented Tier1)
@@ -22,14 +22,14 @@ G_M49137_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M49137_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
; byrRegs +[rcx]
cmp byte ptr [rcx], 0
- setne al- movzx rax, al- ;; size=9 bbWeight=1 PerfScore 4.25+ setzune al+ mov eax, eax+ ;; size=11 bbWeight=1 PerfScore 4.25
G_M49137_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 0, PerfScore 5.25, instruction count 4, allocated bytes for code 10 (MethodHash=9261400e) for method System.Boolean:System.IConvertible.ToInt64(System.IFormatProvider):long:this (Instrumented Tier1)+; Total bytes of code 12, prolog size 0, PerfScore 5.25, instruction count 4, allocated bytes for code 12 (MethodHash=9261400e) for method System.Boolean:System.IConvertible.ToInt64(System.IFormatProvider):long:this (Instrumented Tier1)
; ============================================================
Unwind Info:
+2 (+20.00%) : 488701.dasm - System.Boolean:System.IConvertible.ToUInt64(System.IFormatProvider):ulong:this (Instrumented Tier1)
@@ -22,14 +22,14 @@ G_M53105_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M53105_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0002 {rcx}, byref
; byrRegs +[rcx]
cmp byte ptr [rcx], 0
- setne al- movzx rax, al- ;; size=9 bbWeight=1 PerfScore 4.25+ setzune al+ mov eax, eax+ ;; size=11 bbWeight=1 PerfScore 4.25
G_M53105_IG03: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 10, prolog size 0, PerfScore 5.25, instruction count 4, allocated bytes for code 10 (MethodHash=61ae308e) for method System.Boolean:System.IConvertible.ToUInt64(System.IFormatProvider):ulong:this (Instrumented Tier1)+; Total bytes of code 12, prolog size 0, PerfScore 5.25, instruction count 4, allocated bytes for code 12 (MethodHash=61ae308e) for method System.Boolean:System.IConvertible.ToUInt64(System.IFormatProvider):ulong:this (Instrumented Tier1)
; ============================================================
Unwind Info:
+3 (+18.75%) : 338924.dasm - System.Double:op_Inequality(double,double):bool (Instrumented Tier1)
@@ -19,18 +19,15 @@ G_M47944_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M47944_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setp al+ setzup al
jp SHORT G_M47944_IG03
- setne al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M47944_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M47944_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Instrumented Tier1)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=48b044b7) for method System.Double:op_Inequality(double,double):bool (Instrumented Tier1)
; ============================================================
Unwind Info:
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch
-2 (-11.11%) : 165093.dasm - System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[int]:TryGetFirst(byref):int:this (FullOpts)
@@ -19,14 +19,13 @@ G_M10025_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0004 {rdx},
; gcrRegs +[rcx]
; byrRegs +[rdx]
cmp byte ptr [rcx+0x28], 0
- sete r8b- movzx r8, r8b- ;; size=12 bbWeight=1 PerfScore 4.25+ setzue r8b+ ;; size=10 bbWeight=1 PerfScore 4.00
G_M10025_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [<unknown method>]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 18, prolog size 0, PerfScore 6.25, instruction count 4, allocated bytes for code 18 (MethodHash=6cd2d8d6) for method System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[int]:TryGetFirst(byref):int:this (FullOpts)+; Total bytes of code 16, prolog size 0, PerfScore 6.00, instruction count 3, allocated bytes for code 16 (MethodHash=6cd2d8d6) for method System.Linq.Enumerable+ImplicitlyStableOrderedIterator`1[int]:TryGetFirst(byref):int:this (FullOpts)
; ============================================================
Unwind Info:
-2 (-8.70%) : 145574.dasm - System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests+<>c__DisplayClass7_0:b__0(long,bool):this (FullOpts)
@@ -23,14 +23,13 @@ G_M24844_IG02: ; bbWeight=1, gcrefRegs=0002 {rcx}, byrefRegs=0000 {}, byr
mov rcx, gword ptr [rcx+0x08]
cmp byte ptr [rcx], cl
test r8b, r8b
- setne r8b- movzx r8, r8b- ;; size=17 bbWeight=1 PerfScore 6.50+ setzune r8b+ ;; size=15 bbWeight=1 PerfScore 6.25
G_M24844_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [System.IO.UnmanagedMemoryAccessor:Write(long,byte):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 23, prolog size 0, PerfScore 8.50, instruction count 6, allocated bytes for code 23 (MethodHash=87c89ef3) for method System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests+<>c__DisplayClass7_0:<AssertWritesReads>b__0(long,bool):this (FullOpts)+; Total bytes of code 21, prolog size 0, PerfScore 8.25, instruction count 5, allocated bytes for code 21 (MethodHash=87c89ef3) for method System.IO.MemoryMappedFiles.Tests.MemoryMappedViewAccessorTests+<>c__DisplayClass7_0:<AssertWritesReads>b__0(long,bool):this (FullOpts)
; ============================================================
Unwind Info:
-2 (-6.90%) : 65545.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
@@ -21,20 +21,19 @@ G_M12575_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M12575_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx rdx]
cmp byte ptr [rdx+0x50], 0
- sete r8b- movzx r8, r8b+ setzue r8b
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
xor rax, rax
; gcrRegs +[rax]
- ;; size=20 bbWeight=1 PerfScore 7.50+ ;; size=18 bbWeight=1 PerfScore 7.25
G_M12575_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 29, prolog size 4, PerfScore 9.00, instruction count 8, allocated bytes for code 29 (MethodHash=3778cee0) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)+; Total bytes of code 27, prolog size 4, PerfScore 8.75, instruction count 7, allocated bytes for code 27 (MethodHash=3778cee0) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 236590.dasm - System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)
@@ -17,18 +17,15 @@ G_M8561_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M8561_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M8561_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M8561_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M8561_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M8561_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=a219de8e) for method System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=a219de8e) for method System.Runtime.Intrinsics.Scalar`1[double]:Equals(double,double):bool (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 236334.dasm - System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (FullOpts)
@@ -17,18 +17,15 @@ G_M50164_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M50164_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomiss xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M50164_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M50164_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M50164_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M50164_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=bc063c0b) for method System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=bc063c0b) for method System.Runtime.Intrinsics.Scalar`1[float]:Equals(float,float):bool (FullOpts)
; ============================================================
Unwind Info:
+3 (+18.75%) : 132268.dasm - System.Formats.Cbor.Tests.CborRandomGenerators+<>c:b__4_0(double):bool:this (FullOpts)
@@ -18,18 +18,15 @@ G_M12531_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=0 bbWeight=1 PerfScore 0.00
G_M12531_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vucomisd xmm1, xmm1
- setnp al+ setzunp al
jp SHORT G_M12531_IG03
- sete al- ;; size=12 bbWeight=1 PerfScore 5.00-G_M12531_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M12531_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=18 bbWeight=1 PerfScore 5.00+G_M12531_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 16, prolog size 0, PerfScore 6.25, instruction count 6, allocated bytes for code 16 (MethodHash=c7f6cf0c) for method System.Formats.Cbor.Tests.CborRandomGenerators+<>c:<Double>b__4_0(double):bool:this (FullOpts)+; Total bytes of code 19, prolog size 0, PerfScore 6.00, instruction count 5, allocated bytes for code 19 (MethodHash=c7f6cf0c) for method System.Formats.Cbor.Tests.CborRandomGenerators+<>c:<Double>b__4_0(double):bool:this (FullOpts)
; ============================================================
Unwind Info:
realworld.run.windows.x64.checked.mch
-2 (-6.90%) : 15882.dasm - Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
@@ -21,20 +21,19 @@ G_M12575_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M12575_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {}, byref
; gcrRegs +[rcx rdx]
cmp byte ptr [rdx+0x50], 0
- sete r8b- movzx r8, r8b+ setzue r8b
call [<unknown method>]
; gcrRegs -[rcx rdx]
; gcr arg pop 0
xor rax, rax
; gcrRegs +[rax]
- ;; size=20 bbWeight=1 PerfScore 7.50+ ;; size=18 bbWeight=1 PerfScore 7.25
G_M12575_IG03: ; bbWeight=1, epilog, nogc, extend
add rsp, 40
ret ;; size=5 bbWeight=1 PerfScore 1.25
-; Total bytes of code 29, prolog size 4, PerfScore 9.00, instruction count 8, allocated bytes for code 29 (MethodHash=3778cee0) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)+; Total bytes of code 27, prolog size 4, PerfScore 8.75, instruction count 7, allocated bytes for code 27 (MethodHash=3778cee0) for method Microsoft.CodeAnalysis.CSharp.NullableWalker:VisitConvertedSwitchExpression(Microsoft.CodeAnalysis.CSharp.BoundConvertedSwitchExpression):Microsoft.CodeAnalysis.CSharp.BoundNode:this (FullOpts)
; ============================================================
Unwind Info:
-2 (-5.13%) : 17244.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalToScope(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
@@ -26,19 +26,18 @@ G_M50748_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
mov r8, gword ptr [rdx+0x38]
; gcrRegs +[r8]
cmp dword ptr [r8+0x08], 0
- setne r8b+ setzune r8b
; gcrRegs -[r8]
- movzx r8, r8b
or eax, r8d
mov byte ptr [rcx+0x6E], al
mov rcx, gword ptr [rcx+0x10]
cmp dword ptr [rcx], ecx
- ;; size=33 bbWeight=1 PerfScore 14.50+ ;; size=31 bbWeight=1 PerfScore 14.25
G_M50748_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [Microsoft.CodeAnalysis.CodeGen.ILBuilder+LocalScopeManager:AddLocal(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 39, prolog size 0, PerfScore 16.50, instruction count 10, allocated bytes for code 39 (MethodHash=9df939c3) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalToScope(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)+; Total bytes of code 37, prolog size 0, PerfScore 16.25, instruction count 9, allocated bytes for code 37 (MethodHash=9df939c3) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalToScope(Microsoft.CodeAnalysis.CodeGen.LocalDefinition):this (FullOpts)
; ============================================================
Unwind Info:
-2 (-5.13%) : 17708.dasm - Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalConstantToScope(Microsoft.CodeAnalysis.CodeGen.LocalConstantDefinition):this (FullOpts)
@@ -26,19 +26,18 @@ G_M60412_IG02: ; bbWeight=1, gcrefRegs=0006 {rcx rdx}, byrefRegs=0000 {},
mov r8, gword ptr [rdx+0x20]
; gcrRegs +[r8]
cmp dword ptr [r8+0x08], 0
- setne r8b+ setzune r8b
; gcrRegs -[r8]
- movzx r8, r8b
or eax, r8d
mov byte ptr [rcx+0x6E], al
mov rcx, gword ptr [rcx+0x10]
cmp dword ptr [rcx], ecx
- ;; size=33 bbWeight=1 PerfScore 14.50+ ;; size=31 bbWeight=1 PerfScore 14.25
G_M60412_IG03: ; bbWeight=1, epilog, nogc, extend
tail.jmp [Microsoft.CodeAnalysis.CodeGen.ILBuilder+LocalScopeManager:AddLocalConstant(Microsoft.CodeAnalysis.CodeGen.LocalConstantDefinition):this]
;; size=6 bbWeight=1 PerfScore 2.00
-; Total bytes of code 39, prolog size 0, PerfScore 16.50, instruction count 10, allocated bytes for code 39 (MethodHash=39d01403) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalConstantToScope(Microsoft.CodeAnalysis.CodeGen.LocalConstantDefinition):this (FullOpts)+; Total bytes of code 37, prolog size 0, PerfScore 16.25, instruction count 9, allocated bytes for code 37 (MethodHash=39d01403) for method Microsoft.CodeAnalysis.CodeGen.ILBuilder:AddLocalConstantToScope(Microsoft.CodeAnalysis.CodeGen.LocalConstantDefinition):this (FullOpts)
; ============================================================
Unwind Info:
+3 (+15.00%) : 4681.dasm - Microsoft.ML.Data.R4Adder:IsDefault(float):bool:this (FullOpts)
@@ -18,18 +18,15 @@ G_M63379_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M63379_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
- setnp al+ setzunp al
jp SHORT G_M63379_IG03
- sete al- ;; size=16 bbWeight=1 PerfScore 5.33-G_M63379_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M63379_IG04: ; bbWeight=1, epilog, nogc, extend+ setzue al+ ;; size=22 bbWeight=1 PerfScore 5.33+G_M63379_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 6.58, instruction count 7, allocated bytes for code 20 (MethodHash=aba0086c) for method Microsoft.ML.Data.R4Adder:IsDefault(float):bool:this (FullOpts)+; Total bytes of code 23, prolog size 0, PerfScore 6.33, instruction count 6, allocated bytes for code 23 (MethodHash=aba0086c) for method Microsoft.ML.Data.R4Adder:IsDefault(float):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+15.00%) : 5054.dasm - Microsoft.ML.Trainers.SdcaTrainerBase`3+<>c[System.__Canon,System.__Canon,System.__Canon]:b__20_0(float):bool:this (FullOpts)
@@ -18,18 +18,15 @@ G_M3146_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
G_M3146_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
vxorps xmm0, xmm0, xmm0
vucomiss xmm1, xmm0
- setp al+ setzup al
jp SHORT G_M3146_IG03
- setne al- ;; size=16 bbWeight=1 PerfScore 5.33-G_M3146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M3146_IG04: ; bbWeight=1, epilog, nogc, extend+ setzune al+ ;; size=22 bbWeight=1 PerfScore 5.33+G_M3146_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 20, prolog size 0, PerfScore 6.58, instruction count 7, allocated bytes for code 20 (MethodHash=1440f3b5) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+<>c[System.__Canon,System.__Canon,System.__Canon]:<CheckConvergence>b__20_0(float):bool:this (FullOpts)+; Total bytes of code 23, prolog size 0, PerfScore 6.33, instruction count 6, allocated bytes for code 23 (MethodHash=1440f3b5) for method Microsoft.ML.Trainers.SdcaTrainerBase`3+<>c[System.__Canon,System.__Canon,System.__Canon]:<CheckConvergence>b__20_0(float):bool:this (FullOpts)
; ============================================================
Unwind Info:
+3 (+12.50%) : 5059.dasm - Microsoft.ML.Data.Conversion.Conversions:IsDefault(byref):bool:this (FullOpts)
@@ -20,19 +20,16 @@ G_M22340_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0004 {rdx}, byr
vmovss xmm0, dword ptr [rdx]
vxorps xmm1, xmm1, xmm1
vucomiss xmm0, xmm1
- setnp al+ setzunp al
jp SHORT G_M22340_IG03
- sete al- ;; size=20 bbWeight=1 PerfScore 9.33-G_M22340_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref+ setzue al+ ;; size=26 bbWeight=1 PerfScore 9.33+G_M22340_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, epilog, nogc
; byrRegs -[rdx]
- movzx rax, al- ;; size=3 bbWeight=1 PerfScore 0.25-G_M22340_IG04: ; bbWeight=1, epilog, nogc, extend
ret ;; size=1 bbWeight=1 PerfScore 1.00
-; Total bytes of code 24, prolog size 0, PerfScore 10.58, instruction count 8, allocated bytes for code 24 (MethodHash=f143a8bb) for method Microsoft.ML.Data.Conversion.Conversions:IsDefault(byref):bool:this (FullOpts)+; Total bytes of code 27, prolog size 0, PerfScore 10.33, instruction count 7, allocated bytes for code 27 (MethodHash=f143a8bb) for method Microsoft.ML.Data.Conversion.Conversions:IsDefault(byref):bool:this (FullOpts)
; ============================================================
Unwind Info:
smoke_tests.nativeaot.windows.x64.checked.mch
-2 (-2.02%) : 17861.dasm - System.Runtime.InternalCalls:RhCollect(int,int,bool) (FullOpts)
@@ -38,13 +38,12 @@ G_M49764_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=27 bbWeight=1 PerfScore 9.75
G_M49764_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test r8b, r8b
- setne r8b- movzx r8, r8b+ setzune r8b
mov dword ptr [rbp-0x64], ecx
mov dword ptr [rbp-0x68], edx
mov dword ptr [rbp-0x6C], r8d
lea rcx, [rbp-0x60]
- ;; size=25 bbWeight=1 PerfScore 5.00+ ;; size=23 bbWeight=1 PerfScore 4.75
G_M49764_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_JIT_PINVOKE_BEGIN
mov ecx, dword ptr [rbp-0x64]
@@ -70,7 +69,7 @@ G_M49764_IG05: ; bbWeight=1, epilog, nogc, extend
ret ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 99, prolog size 27, PerfScore 26.75, instruction count 36, allocated bytes for code 99 (MethodHash=4d5a3d9b) for method System.Runtime.InternalCalls:RhCollect(int,int,bool) (FullOpts)+; Total bytes of code 97, prolog size 27, PerfScore 26.50, instruction count 35, allocated bytes for code 97 (MethodHash=4d5a3d9b) for method System.Runtime.InternalCalls:RhCollect(int,int,bool) (FullOpts)
; ============================================================
Unwind Info:
-2 (-1.89%) : 20022.dasm - System.Number:RightShiftWithRounding(ulong,int,bool):ulong (FullOpts)
@@ -37,21 +37,18 @@ G_M8046_IG03: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
lea r10, [rax-0x01]
and edx, 63
bt rcx, rdx
- setb r9b- movzx r9, r9b+ setzub r9b
test rcx, rax
- setne al- movzx rax, al+ setzune al
test r8b, r8b
jne SHORT G_M8046_IG04
mov r8d, 1
jmp SHORT G_M8046_IG05
- ;; size=55 bbWeight=0.50 PerfScore 4.38+ ;; size=53 bbWeight=0.50 PerfScore 4.12
G_M8046_IG04: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test rcx, r10
- setne r8b- movzx r8, r8b- ;; size=11 bbWeight=0.50 PerfScore 0.75+ setzune r8b+ ;; size=9 bbWeight=0.50 PerfScore 0.62
G_M8046_IG05: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref, isz
test eax, eax
jne SHORT G_M8046_IG06
@@ -65,10 +62,10 @@ G_M8046_IG06: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byre
G_M8046_IG07: ; bbWeight=0.50, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
shrx rcx, rcx, rdx
test eax, eax
- setne al- movzx rax, al+ setzune al+ mov eax, eax
add rax, rcx
- ;; size=16 bbWeight=0.50 PerfScore 1.12+ ;; size=18 bbWeight=0.50 PerfScore 1.12
G_M8046_IG08: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
@@ -79,7 +76,7 @@ G_M8046_IG10: ; bbWeight=0.50, epilog, nogc, extend
ret ;; size=1 bbWeight=0.50 PerfScore 0.50
-; Total bytes of code 106, prolog size 0, PerfScore 10.62, instruction count 34, allocated bytes for code 106 (MethodHash=aec1e091) for method System.Number:RightShiftWithRounding(ulong,int,bool):ulong (FullOpts)+; Total bytes of code 104, prolog size 0, PerfScore 10.25, instruction count 31, allocated bytes for code 104 (MethodHash=aec1e091) for method System.Number:RightShiftWithRounding(ulong,int,bool):ulong (FullOpts)
; ============================================================
Unwind Info:
-2 (-1.67%) : 17859.dasm - System.Runtime.InternalCalls:RhStartNoGCRegion(long,bool,long,bool):int (FullOpts)
@@ -46,17 +46,15 @@ G_M63916_IG01: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref,
;; size=27 bbWeight=1 PerfScore 9.75
G_M63916_IG02: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
test dl, dl
- setne dl- movzx rdx, dl+ setzune dl
test r9b, r9b
- setne r9b- movzx r9, r9b+ setzune r9b
mov qword ptr [rbp-0x70], rcx
mov dword ptr [rbp-0x64], edx
mov qword ptr [rbp-0x78], r8
mov dword ptr [rbp-0x68], r9d
lea rcx, [rbp-0x60]
- ;; size=38 bbWeight=1 PerfScore 7.50+ ;; size=36 bbWeight=1 PerfScore 7.00
G_M63916_IG03: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
call CORINFO_HELP_JIT_PINVOKE_BEGIN
mov rcx, qword ptr [rbp-0x70]
@@ -84,7 +82,7 @@ G_M63916_IG05: ; bbWeight=1, epilog, nogc, extend
ret ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 120, prolog size 27, PerfScore 30.50, instruction count 42, allocated bytes for code 120 (MethodHash=35c00653) for method System.Runtime.InternalCalls:RhStartNoGCRegion(long,bool,long,bool):int (FullOpts)+; Total bytes of code 118, prolog size 27, PerfScore 30.00, instruction count 40, allocated bytes for code 118 (MethodHash=35c00653) for method System.Runtime.InternalCalls:RhStartNoGCRegion(long,bool,long,bool):int (FullOpts)
; ============================================================
Unwind Info:
+3 (+3.90%) : 18735.dasm - System.Threading.Thread:Yield():bool (FullOpts)
@@ -38,9 +38,9 @@ G_M21901_IG04: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
lea rcx, [rbp-0x60]
call CORINFO_HELP_JIT_PINVOKE_END
test ebx, ebx
- setne al+ setzune al
movzx rax, al
- ;; size=24 bbWeight=1 PerfScore 4.25+ ;; size=27 bbWeight=1 PerfScore 4.25
G_M21901_IG05: ; bbWeight=1, epilog, nogc, extend
add rsp, 72
pop rbx
@@ -54,7 +54,7 @@ G_M21901_IG05: ; bbWeight=1, epilog, nogc, extend
ret ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 77, prolog size 27, PerfScore 20.75, instruction count 30, allocated bytes for code 77 (MethodHash=b57eaa72) for method System.Threading.Thread:Yield():bool (FullOpts)+; Total bytes of code 80, prolog size 27, PerfScore 20.75, instruction count 30, allocated bytes for code 80 (MethodHash=b57eaa72) for method System.Threading.Thread:Yield():bool (FullOpts)
; ============================================================
Unwind Info:
+3 (+2.63%) : 17420.dasm - Interop+Globalization:IsPredefinedLocale(System.String):bool (FullOpts)
@@ -69,9 +69,9 @@ G_M12682_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
mov bword ptr [rbp-0x40], rax
test ebx, ebx
- setne al+ setzune al
movzx rax, al
- ;; size=30 bbWeight=1 PerfScore 5.50+ ;; size=33 bbWeight=1 PerfScore 5.50
G_M12682_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 88
pop rbx
@@ -85,7 +85,7 @@ G_M12682_IG08: ; bbWeight=1, epilog, nogc, extend
ret ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 114, prolog size 33, PerfScore 28.75, instruction count 42, allocated bytes for code 114 (MethodHash=e749ce75) for method Interop+Globalization:IsPredefinedLocale(System.String):bool (FullOpts)+; Total bytes of code 117, prolog size 33, PerfScore 28.75, instruction count 42, allocated bytes for code 117 (MethodHash=e749ce75) for method Interop+Globalization:IsPredefinedLocale(System.String):bool (FullOpts)
; ============================================================
Unwind Info:
+3 (+2.31%) : 17613.dasm - Interop+Globalization:GetLocaleName(System.String,ptr,int):bool (FullOpts)
@@ -78,9 +78,9 @@ G_M61634_IG07: ; bbWeight=1, gcrefRegs=0000 {}, byrefRegs=0000 {}, byref
xor eax, eax
mov bword ptr [rbp-0x40], rax
test ebx, ebx
- setne al+ setzune al
movzx rax, al
- ;; size=30 bbWeight=1 PerfScore 5.50+ ;; size=33 bbWeight=1 PerfScore 5.50
G_M61634_IG08: ; bbWeight=1, epilog, nogc, extend
add rsp, 104
pop rbx
@@ -94,7 +94,7 @@ G_M61634_IG08: ; bbWeight=1, epilog, nogc, extend
ret ;; size=17 bbWeight=1 PerfScore 5.25
-; Total bytes of code 130, prolog size 33, PerfScore 32.75, instruction count 46, allocated bytes for code 130 (MethodHash=0ab20f3d) for method Interop+Globalization:GetLocaleName(System.String,ptr,int):bool (FullOpts)+; Total bytes of code 133, prolog size 33, PerfScore 32.75, instruction count 46, allocated bytes for code 133 (MethodHash=0ab20f3d) for method Interop+Globalization:GetLocaleName(System.String,ptr,int):bool (FullOpts)
; ============================================================
Unwind Info:
Details

Instruction Count improvements/regressions per collection

CollectionContexts with diffsImprovementsRegressionsSame sizeImprovements (#instructions)Regressions (#instructions)
aspnet.run.windows.x64.checked.mch18,82418,739085-31,008+0
benchmarks.run.windows.x64.checked.mch3,7443,681063-8,171+0
benchmarks.run_pgo.windows.x64.checked.mch24,38024,360020-55,633+0
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch3,7493,686063-8,225+0
coreclr_tests.run.windows.x64.checked.mch56,73256,5200212-202,141+0
libraries.crossgen2.windows.x64.checked.mch0000-0+0
libraries.pmi.windows.x64.checked.mch18,95318,6390314-26,772+0
libraries_tests.run.windows.x64.Release.mch68,22467,8580366-133,449+0
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch31,23630,9390297-66,655+0
realworld.run.windows.x64.checked.mch3,8723,794078-6,830+0
smoke_tests.nativeaot.windows.x64.checked.mch523495028-677+0
230,237228,71101,526-539,561+0

Size improvements/regressions per collection

CollectionContexts with diffsImprovementsRegressionsSame sizeImprovements (bytes)Regressions (bytes)
aspnet.run.windows.x64.checked.mch18,8244,54814614,130-15,430+376
benchmarks.run.windows.x64.checked.mch3,744685722,987-2,023+212
benchmarks.run_pgo.windows.x64.checked.mch24,3805,2933519,052-26,878+101
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch3,749685722,992-2,023+212
coreclr_tests.run.windows.x64.checked.mch56,7326,4101,99048,332-19,929+12,251
libraries.crossgen2.windows.x64.checked.mch0000-0+0
libraries.pmi.windows.x64.checked.mch18,9533,51742115,015-10,394+1,271
libraries_tests.run.windows.x64.Release.mch68,22415,80168251,741-52,581+2,017
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch31,2365,75748624,993-18,774+2,095
realworld.run.windows.x64.checked.mch3,872896992,877-3,201+286
smoke_tests.nativeaot.windows.x64.checked.mch52311830375-404+88
230,23743,7104,033182,494-151,637+18,909

PerfScore improvements/regressions per collection

CollectionContexts with diffsImprovementsRegressionsSame PerfScoreImprovements (PerfScore)Regressions (PerfScore)PerfScore Overall in FullOpts
aspnet.run.windows.x64.checked.mch18,82415,47103,353-1.10%0.00%-0.1205%
benchmarks.run.windows.x64.checked.mch3,7443,6260118-0.90%0.00%-0.1127%
benchmarks.run_pgo.windows.x64.checked.mch24,38018,46505,915-1.09%0.00%-0.1555%
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch3,7493,6310118-0.89%0.00%-0.1121%
coreclr_tests.run.windows.x64.checked.mch56,73254,75401,978-0.63%0.00%-0.0619%
libraries.crossgen2.windows.x64.checked.mch00000.00%0.00%0.0000%
libraries.pmi.windows.x64.checked.mch18,95317,85601,097-1.73%0.00%-0.1080%
libraries_tests.run.windows.x64.Release.mch68,22460,75307,471-0.78%0.00%-0.1257%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch31,23630,2790957-0.69%0.00%-0.0503%
realworld.run.windows.x64.checked.mch3,8723,7470125-0.83%0.00%-0.1063%
smoke_tests.nativeaot.windows.x64.checked.mch523491032-1.62%0.00%-0.0235%

Context information

CollectionDiffed contextsMinOptsFullOptsMissed, baseMissed, diff
aspnet.run.windows.x64.checked.mch197,234107,93089,304819 (0.41%)819 (0.41%)
benchmarks.run.windows.x64.checked.mch28,935528,9300 (0.00%)0 (0.00%)
benchmarks.run_pgo.windows.x64.checked.mch144,95052,91892,0320 (0.00%)0 (0.00%)
benchmarks.run_pgo_optrepeat.windows.x64.checked.mch29,055529,0500 (0.00%)0 (0.00%)
coreclr_tests.run.windows.x64.checked.mch635,045387,749247,2960 (0.00%)0 (0.00%)
libraries.crossgen2.windows.x64.checked.mch273,40117273,3840 (0.00%)0 (0.00%)
libraries.pmi.windows.x64.checked.mch287,5466287,5401 (0.00%)1 (0.00%)
libraries_tests.run.windows.x64.Release.mch720,686529,198191,4881 (0.00%)1 (0.00%)
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch366,38222,082344,30013 (0.00%)13 (0.00%)
realworld.run.windows.x64.checked.mch29,243329,2400 (0.00%)0 (0.00%)
smoke_tests.nativeaot.windows.x64.checked.mch34,1931534,1780 (0.00%)0 (0.00%)
2,746,6701,099,9281,646,742834 (0.03%)834 (0.03%)

jit-analyze output

@dotnet-policy-service

Copy link
Copy Markdown
Contributor

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

@Ruihan-YinRuihan-Yin changed the title Apx zu[APX] Enable APX-EVEX.ZU for SETcc instructionsJul 3, 2025
@Ruihan-Yin
Ruihan-Yin marked this pull request as ready for review July 3, 2025 10:17
CopilotAI review requested due to automatic review settings July 3, 2025 10:17
@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

@dotnet/intel for review

CopilotAI left a comment

Copy link
Copy Markdown
Contributor

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 enables the APX-EVEX.ZU feature for SETcc instructions, allowing the JIT to emit promoted EVEX encodings and avoid extra zeroing moves.

  • Introduce a new JIT config EnableApxZU to toggle the ZU feature.
  • Define new SETZUcc opcodes and wire them through instruction enums, emitter logic, and codegen.
  • Extend insOpts, emitter context bits, and codegen paths to carry and apply the EVEX.ZU encoding.

Reviewed Changes

Copilot reviewed 10 out of 10 changed files in this pull request and generated no comments.

Show a summary per file
FileDescription
src/coreclr/jit/jitconfigvalues.hAdded EnableApxZU config flag
src/coreclr/jit/instrsxarch.hDeclared new setzu* instructions next to existing SETcc exams
src/coreclr/jit/instr.hAdded INS_OPTS_EVEX_zu and its mask to the insOpts enum
src/coreclr/jit/instr.cppUpdated inst_SET to accept instOptions and promote to ZU form
src/coreclr/jit/emitxarch.hDeclared IsSETZUccInstruction and SetEvexZuIfNeeded
src/coreclr/jit/emitxarch.cppImplemented ZU detection, prefix logic, and integration
src/coreclr/jit/emit.hAdded EVEX.ZU context bits and setters/getters
src/coreclr/jit/compiler.hAdded canUseApxEvexEncoding()
src/coreclr/jit/codegenxarch.cppPropagated instOptions in inst_SETCC and updated prolog/epilog
src/coreclr/jit/codegen.hExtended inst_SET signature to include instOptions
Comments suppressed due to low confidence (3)

src/coreclr/jit/instr.h:305

  • [nitpick] The enum constant INS_OPTS_EVEX_zu uses lowercase letters for 'zu', deviating from the uppercase convention of other EVEX options. Consider renaming it to INS_OPTS_EVEX_ZU for consistency.
 INS_OPTS_EVEX_zu = 1 << 14, // Zero Upper for APX-EVEX

src/coreclr/jit/codegenxarch.cpp:9457

  • Only INS_setzuo is covered in the emitter unit tests. To ensure full coverage of the new APX-EVEX.ZU feature, add tests for all SETZUcc variants (INS_setzuno, INS_setzub, etc.).
 theEmitter->emitIns_R(INS_setzuo, EA_1BYTE, REG_R11, INS_OPTS_EVEX_zu);

src/coreclr/jit/emit.h:851

  • Add a comment clarifying that _idEvexZuContext intentionally reuses the same _idCustom5 bit as _idEvexNdContext, since EVEX.ZU repurposes the EVEX.ND bit in the encoding.
#define _idEvexZuContext _idCustom5 /* bits used for the APX-EVEX.zu context for promoted legacy instructions */

@risc-vv

Copy link
Copy Markdown

@dotnet/samsung Could you please take a look? These changes may be related to riscv64.

@Ruihan-Yin
Ruihan-Yin marked this pull request as draft July 7, 2025 21:17
@tannergooding

Copy link
Copy Markdown
Member

The changes generally look good to me now. I think there's some condition ordering fixes and potential naming improvements that are warranted, but it looks to flow a lot better now and need less special handling 👍

Comment threadsrc/coreclr/jit/emit.h Outdated
Comment threadsrc/coreclr/jit/emit.h
Comment threadsrc/coreclr/jit/emitxarch.cpp Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

CC. @dotnet/jit-contrib, @EgorBo for secondary review

@risc-vv

Copy link
Copy Markdown

@dotnet/samsung Could you please take a look? These changes may be related to riscv64.

@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

Hi @EgorBo, could you please take a look at this PR please, thanks! :)

@EgorBoEgorBo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Sorry for the delay, LGTM

@EgorBo

Copy link
Copy Markdown
Member

Is MinOpts TP regression unavoidable?

@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

Is MinOpts TP regression unavoidable?

image

tp on windows now is green, some regression found on linux, but I suppose that's acceptable.

I have one more bug fix patch, but it should not affect tp too much.

@Ruihan-Yin
Ruihan-Yin requested a review from EgorBoJuly 24, 2025 04:04

@EgorBoEgorBo left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks for fixing the TP regression!

@EgorBo
EgorBo enabled auto-merge (squash) July 24, 2025 15:06
@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

Looks like build analysis is failing due to some timeout issue.

@EgorBo

Copy link
Copy Markdown
Member

/ba-g "timeouts on linux-x64"

@EgorBo
EgorBo merged commit dd7a848 into dotnet:mainJul 24, 2025
107 of 110 checks passed
@Ruihan-Yin

Copy link
Copy Markdown
MemberAuthor

Thanks for the reviews and suggestions! :)

@github-actionsgithub-actionsBot locked and limited conversation to collaborators Aug 24, 2025
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates that the PR has been added by a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@Ruihan-Yin@risc-vv@tannergooding@EgorBo