Assembly Diffs

linux arm

Diffs are based on 2,242,904 contexts (830,244 MinOpts, 1,412,660 FullOpts).

MISSED contexts: 73,620 (3.18%)

No diffs found.

Details

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.linux.arm.checked.mch 45,558 5,109 40,449 1,189 (2.54%) 1,189 (2.54%)
benchmarks.run_pgo.linux.arm.checked.mch 160,880 59,255 101,625 3,263 (1.99%) 3,263 (1.99%)
benchmarks.run_tiered.linux.arm.checked.mch 77,452 41,903 35,549 1,072 (1.37%) 1,072 (1.37%)
coreclr_tests.run.linux.arm.checked.mch 472,712 259,492 213,220 7,204 (1.50%) 7,204 (1.50%)
libraries.crossgen2.linux.arm.checked.mch 191,613 14 191,599 0 (0.00%) 0 (0.00%)
libraries.pmi.linux.arm.checked.mch 273,479 6 273,473 7,833 (2.78%) 7,833 (2.78%)
libraries_tests.run.linux.arm.Release.mch 710,144 442,693 267,451 18,089 (2.48%) 18,089 (2.48%)
librariestestsnotieredcompilation.run.linux.arm.Release.mch 274,668 21,625 253,043 33,556 (10.89%) 33,556 (10.89%)
realworld.run.linux.arm.checked.mch 36,398 147 36,251 1,414 (3.74%) 1,414 (3.74%)
2,242,904 830,244 1,412,660 73,620 (3.18%) 73,620 (3.18%)


windows x86

Diffs are based on 2,599,926 contexts (1,005,474 MinOpts, 1,594,452 FullOpts).

Overall (+8 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch 348,964,431 +8

FullOpts (+8 bytes)

Collection Base size (bytes) Diff size (bytes)
coreclr_tests.run.windows.x86.checked.mch 113,859,455 +8

Example diffs

coreclr_tests.run.windows.x86.checked.mch

+4 (+1.17%) : 514493.dasm - JIT.HardwareIntrinsics.X86.Avx512F.SimpleBinaryOpTestScaleScalarDouble:RunBasicScenarioLoadAligned():this (FullOpts)

@@ -173,8 +173,9 @@ G_M47085_IG08: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 lea eax, [eax+ecx-0x01] dec ecx andn ecx, ecx, eax
- vmovups xmm0, xmmword ptr [ebp-0x2C] - vscalefsd xmm0, xmm0, xmmword ptr [ecx]
+ vmovapd xmm0, xmmword ptr [ecx] + vmovups xmm1, xmmword ptr [ebp-0x2C] + vscalefsd xmm0, xmm1, xmm0
vmovups xmmword ptr [ebp-0x1C], xmm0 mov ebx, edi lea ecx, bword ptr [ebx+0x1C] @@ -215,11 +216,11 @@ G_M47085_IG08: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=0000 mov dword ptr [ebp-0x30], eax lea ecx, bword ptr [edi+0x1C] ; byrRegs +[ecx]
+ ;; size=194 bbWeight=1 PerfScore 73.50 +G_M47085_IG09: ; bbWeight=1, extend
; GC ptr vars -{V38} call [<unknown method>] ; byrRegs -[ecx]
- ;; size=196 bbWeight=1 PerfScore 75.50 -G_M47085_IG09: ; bbWeight=1, extend
mov ecx, dword ptr [edi] push dword ptr [ebp-0x30] lea edx, [eax+ecx-0x01] @@ -233,7 +234,7 @@ G_M47085_IG09: ; bbWeight=1, extend call [<unknown method>] ; gcrRegs -[ecx esi] ; byrRegs -[edi]
- ;; size=31 bbWeight=1 PerfScore 10.25
+ ;; size=37 bbWeight=1 PerfScore 13.25
G_M47085_IG10: ; bbWeight=1, epilog, nogc, extend lea esp, [ebp-0x0C] pop ebx @@ -243,6 +244,6 @@ G_M47085_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 343, prolog size 9, PerfScore 113.21, instruction count 102, allocated bytes for code 343 (MethodHash=c80b4812) for method JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarDouble:RunBasicScenario_LoadAligned():this (FullOpts)
+; Total bytes of code 347, prolog size 9, PerfScore 114.21, instruction count 103, allocated bytes for code 347 (MethodHash=c80b4812) for method JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarDouble:RunBasicScenario_LoadAligned():this (FullOpts)
; ============================================================

+4 (+1.17%) : 514508.dasm - JIT.HardwareIntrinsics.X86.Avx512F.SimpleBinaryOpTestScaleScalarSingle:RunBasicScenarioLoadAligned():this (FullOpts)

@@ -173,8 +173,9 @@ G_M6370_IG08: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000 lea eax, [eax+ecx-0x01] dec ecx andn ecx, ecx, eax
- vmovups xmm0, xmmword ptr [ebp-0x2C] - vscalefss xmm0, xmm0, xmmword ptr [ecx]
+ vmovaps xmm0, xmmword ptr [ecx] + vmovups xmm1, xmmword ptr [ebp-0x2C] + vscalefss xmm0, xmm1, xmm0
vmovups xmmword ptr [ebp-0x1C], xmm0 mov ebx, edi lea ecx, bword ptr [ebx+0x1C] @@ -215,11 +216,11 @@ G_M6370_IG08: ; bbWeight=1, gcrefRegs=000000C0 {esi edi}, byrefRegs=00000 mov dword ptr [ebp-0x30], eax lea ecx, bword ptr [edi+0x1C] ; byrRegs +[ecx]
+ ;; size=194 bbWeight=1 PerfScore 73.50 +G_M6370_IG09: ; bbWeight=1, extend
; GC ptr vars -{V38} call [<unknown method>] ; byrRegs -[ecx]
- ;; size=196 bbWeight=1 PerfScore 75.50 -G_M6370_IG09: ; bbWeight=1, extend
mov ecx, dword ptr [edi] push dword ptr [ebp-0x30] lea edx, [eax+ecx-0x01] @@ -233,7 +234,7 @@ G_M6370_IG09: ; bbWeight=1, extend call [<unknown method>] ; gcrRegs -[ecx esi] ; byrRegs -[edi]
- ;; size=31 bbWeight=1 PerfScore 10.25
+ ;; size=37 bbWeight=1 PerfScore 13.25
G_M6370_IG10: ; bbWeight=1, epilog, nogc, extend lea esp, [ebp-0x0C] pop ebx @@ -243,6 +244,6 @@ G_M6370_IG10: ; bbWeight=1, epilog, nogc, extend ret ;; size=8 bbWeight=1 PerfScore 3.50
-; Total bytes of code 343, prolog size 9, PerfScore 113.21, instruction count 102, allocated bytes for code 343 (MethodHash=724be71d) for method JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarSingle:RunBasicScenario_LoadAligned():this (FullOpts)
+; Total bytes of code 347, prolog size 9, PerfScore 114.21, instruction count 103, allocated bytes for code 347 (MethodHash=724be71d) for method JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarSingle:RunBasicScenario_LoadAligned():this (FullOpts)
; ============================================================

Details

Improvements/regressions per collection

Collection Contexts with diffs Improvements Regressions Same size Improvements (bytes) Regressions (bytes)
benchmarks.run.windows.x86.checked.mch 0 0 0 0 -0 +0
benchmarks.run_pgo.windows.x86.checked.mch 0 0 0 0 -0 +0
benchmarks.run_tiered.windows.x86.checked.mch 0 0 0 0 -0 +0
coreclr_tests.run.windows.x86.checked.mch 2 0 2 0 -0 +8
libraries.crossgen2.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries.pmi.windows.x86.checked.mch 0 0 0 0 -0 +0
libraries_tests.run.windows.x86.Release.mch 0 0 0 0 -0 +0
librariestestsnotieredcompilation.run.windows.x86.Release.mch 0 0 0 0 -0 +0
realworld.run.windows.x86.checked.mch 0 0 0 0 -0 +0
2 0 2 0 -0 +8

Context information

Collection Diffed contexts MinOpts FullOpts Missed, base Missed, diff
benchmarks.run.windows.x86.checked.mch 35,457 7 35,450 0 (0.00%) 0 (0.00%)
benchmarks.run_pgo.windows.x86.checked.mch 164,077 68,181 95,896 0 (0.00%) 0 (0.00%)
benchmarks.run_tiered.windows.x86.checked.mch 71,260 44,050 27,210 0 (0.00%) 0 (0.00%)
coreclr_tests.run.windows.x86.checked.mch 668,880 399,413 269,467 0 (0.00%) 0 (0.00%)
libraries.crossgen2.windows.x86.checked.mch 273,636 15 273,621 0 (0.00%) 0 (0.00%)
libraries.pmi.windows.x86.checked.mch 307,089 6 307,083 0 (0.00%) 0 (0.00%)
libraries_tests.run.windows.x86.Release.mch 691,849 471,429 220,420 0 (0.00%) 0 (0.00%)
librariestestsnotieredcompilation.run.windows.x86.Release.mch 351,675 22,370 329,305 0 (0.00%) 0 (0.00%)
realworld.run.windows.x86.checked.mch 36,003 3 36,000 0 (0.00%) 0 (0.00%)
2,599,926 1,005,474 1,594,452 0 (0.00%) 0 (0.00%)

jit-analyze output

coreclr_tests.run.windows.x86.checked.mch

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


Summary of Code Size diffs:
(Lower is better)

Total bytes of base: 348964431 (overridden on cmd)
Total bytes of diff: 348964439 (overridden on cmd)
Total bytes of delta: 8 (0.00 % of base)
    diff is a regression.
    relative diff is a regression.

Detail diffs



Top file regressions (bytes):
           4 : 514508.dasm (1.17 % of base)
           4 : 514493.dasm (1.17 % of base)

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

Top method regressions (bytes):
           4 (1.17 % of base) : 514493.dasm - JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarDouble:RunBasicScenario_LoadAligned():this (FullOpts)
           4 (1.17 % of base) : 514508.dasm - JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarSingle:RunBasicScenario_LoadAligned():this (FullOpts)

Top method regressions (percentages):
           4 (1.17 % of base) : 514493.dasm - JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarDouble:RunBasicScenario_LoadAligned():this (FullOpts)
           4 (1.17 % of base) : 514508.dasm - JIT.HardwareIntrinsics.X86._Avx512F.SimpleBinaryOpTest__ScaleScalarSingle:RunBasicScenario_LoadAligned():this (FullOpts)

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