-
Notifications
You must be signed in to change notification settings - Fork 5.2k
[APX] Enable APX-EVEX.ZU for SETcc instructions #117258
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
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)
MinOpts (+9,265 bytes)
FullOpts (-141,993 bytes)
Example diffsaspnet.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: DetailsInstruction Count improvements/regressions per collection
Size improvements/regressions per collection
PerfScore improvements/regressions per collection
Context information
jit-analyze output |
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@dotnet/intel for review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR 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
File | Description |
---|---|
src/coreclr/jit/jitconfigvalues.h | Added EnableApxZU config flag |
src/coreclr/jit/instrsxarch.h | Declared new setzu* instructions next to existing SETcc exams |
src/coreclr/jit/instr.h | Added INS_OPTS_EVEX_zu and its mask to the insOpts enum |
src/coreclr/jit/instr.cpp | Updated inst_SET to accept instOptions and promote to ZU form |
src/coreclr/jit/emitxarch.h | Declared IsSETZUccInstruction and SetEvexZuIfNeeded |
src/coreclr/jit/emitxarch.cpp | Implemented ZU detection, prefix logic, and integration |
src/coreclr/jit/emit.h | Added EVEX.ZU context bits and setters/getters |
src/coreclr/jit/compiler.h | Added canUseApxEvexEncoding() |
src/coreclr/jit/codegenxarch.cpp | Propagated instOptions in inst_SETCC and updated prolog/epilog |
src/coreclr/jit/codegen.h | Extended 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 toINS_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 allSETZUcc
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 */
@dotnet/samsung Could you please take a look? These changes may be related to riscv64. |
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 👍 |
There was a problem hiding this comment.
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
@dotnet/samsung Could you please take a look? These changes may be related to riscv64. |
Hi @EgorBo, could you please take a look at this PR please, thanks! :) |
There was a problem hiding this comment.
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
Is MinOpts TP regression unavoidable? |
![]() 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. |
There was a problem hiding this comment.
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!
Looks like build analysis is failing due to some timeout issue. |
/ba-g "timeouts on linux-x64" |
Thanks for the reviews and suggestions! :) |
This PR enables APX feature: EVEX.ZU for
SETcc
instructions.This allow us not to emit an extra
movzx, dst, dst
to zero out the upper part of the register when usingSETcc
.