Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Scalar/Packed conversions for floating point to integer - #97529

Merged
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased
Apr 5, 2024
Merged

Scalar/Packed conversions for floating point to integer#97529
tannergooding merged 82 commits into
dotnet:mainfrom
khushal1996:kcm-scalar-convert-rebased

Conversation

@khushal1996

@khushal1996khushal1996 commented Jan 26, 2024

Copy link
Copy Markdown
Member
  • This PR gives saturating behavior to floating point to integer conversions

This PR covers the following cases -

Screenshot 2024-01-25 173814

Following is the overview of what all has been optimized -->
In the image below -
Helper - The conversion defaults to C++ helper function
Optimized - The conversion is optimized using combination of conversion instruction and other instructions to mimic saturation behavior.
Semi-Optimized - Fallback to using the optimized scalar version.
Capture

Case: Double to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong DoubleToUlong(double val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong(double):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
E89436C75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x000D
4883C428 add rsp, 40
C3 ret ; Total bytes of code 18

After

; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FF0878C0 vcvttsd2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGE

Case: Double to Ulong vector

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<ulong> DoubleToUlong128(Vector128<double> val)
{
return Vector128.ConvertToUInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToUlong((Vector128.Create((double)ulong.MinValue - 1, (double)123432)));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
C5F877 vzeroupper 488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0010
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
C5FB10442440 vmovsd xmm0, qword ptr [rsp+0x40]
E80D36C75F call CORINFO_HELP_DBL2ULNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
C5FB10442430 vmovsd xmm0, qword ptr [rsp+0x30]
E8EF35C75F call CORINFO_HELP_DBL2ULNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
C5F828442420 vmovaps xmm0, xmmword ptr [rsp+0x20]
C5F81106 vmovups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0062
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 106

After

; Assembly listing for method Program:DoubleToUlong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[ulong] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854050E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FD0878C0 vcvttpd2uqq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0000000008000088h, 0000000008000088h
; Total bytes of code 32

Non-AVX512

NO CHANGE

Case: Float to Ulong scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static ulong FloatToUlong(float val)
{
return (ulong)val;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUlong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
E8002BC75F call CORINFO_HELP_DBL2ULNG
90 nop G_M000_IG03: ;; offset=0x0011
4883C428 add rsp, 40
C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToUlong(float):ulong (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F1FE0878C0 vcvttss2usi rax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

Non-AVX512

NO CHANGES

Case: Double to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long DoubleToLong(double val)
{
return (long)val;
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FB2CC0 vcvttsd2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 55

###AVX
Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C052200000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

 Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D39000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10153D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0041
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 66

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToLong(double):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8B708A15F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: Double to Long packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<long> DoubleToLong128(Vector128<double> val)
{
return Vector128.ConvertToInt64(val);
}
public static void Main(string[] args)
{
Console.WriteLine(DoubleToLong128(Vector128.Create((double)123432));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FB2C442428 vcvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FB2C542418 vcvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004F
4883C438 add rsp, 56
C3 ret ; Total bytes of code 84

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F3FD0854052E00000000 vfixupimmpd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D350000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F810153D000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
62F1FD087AC0 vcvttpd2qq xmm0, xmm0
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C5F81109 vmovups xmmword ptr [rcx], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	0000000000000088h, 0000000000000088h
RWD16 dq	43E0000000000000h, 43E0000000000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F20F12442428 movddup xmm0, qword ptr [rsp+0x28]
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D9B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0F28D1 movaps xmm2, xmm1
660FC2D002 cmppd xmm2, xmm0, 2
0F101D9C000000 movups xmm3, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28E0 movaps xmm4, xmm0
660F6CE0 punpcklqdq xmm4, xmm0
0F28C2 movaps xmm0, xmm2
660F3810E3 pblendvb xmm4, xmm3
66480F7EE0 movd rax, xmm4
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F20F12442418 movddup xmm0, qword ptr [rsp+0x18]
0F28D0 movaps xmm2, xmm0
660FC2D000 cmppd xmm2, xmm0, 0
660F54C2 andpd xmm0, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
F2480F2CD0 cvttsd2si rdx, xmm0
66480F6EC2 movd xmm0, rdx
0F28D0 movaps xmm2, xmm0
660F6CD0 punpcklqdq xmm2, xmm0
0F28C1 movaps xmm0, xmm1
660F3810D3 pblendvb xmm2, xmm3
66480F7ED2 movd rdx, xmm2
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00B7
4883C438 add rsp, 56
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 188

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F2480F2C442428 cvttsd2si rax, qword ptr [rsp+0x28]
4889442430 mov qword ptr [rsp+0x30], rax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F2480F2C542418 cvttsd2si rdx, qword ptr [rsp+0x18]
4889542420 mov qword ptr [rsp+0x20], rdx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x004A
4883C438 add rsp, 56
C3 ret ; Total bytes of code 79

After

; Assembly listing for method Program:DoubleToLong128(System.Runtime.Intrinsics.Vector128`1[double]):System.Runtime.Intrinsics.Vector128`1[long] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F20F10442440 movsd xmm0, qword ptr [rsp+0x40]
E8F081C95F call CORINFO_HELP_DBL2LNG
4889442448 mov qword ptr [rsp+0x48], rax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F20F10442430 movsd xmm0, qword ptr [rsp+0x30]
E8D281C95F call CORINFO_HELP_DBL2LNG
4889442438 mov qword ptr [rsp+0x38], rax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x005D
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 101

Case: float to Long scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static long FloatToLong(float val)
{
return (long)val;
}
public static void Main(string[] args)
{
onsole.WriteLine(FloatToLong(123432));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C4E1FA2CC0 vcvttss2si rax, xmm0
62F2FD087CC0 vpbroadcastq xmm0, rax
62F3ED0825C8CA vpternlogq xmm1, xmm2, xmm0, -54
C4E1F97EC8 vmovd rax, xmm1
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	5F0000005F000000h, 5F0000005F000000h
RWD32 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh

AVX

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D260000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C4E1FB2CC0 vcvttsd2si rax, xmm0
C4E1F96EC0 vmovd xmm0, rax
C5F96CC0 vpunpcklqdq xmm0, xmm0, xmm0
C4E3794C051E00000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C4E1F97EC0 vmovd rax, xmm0
G_M000_IG03: ;; offset=0x0037
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 56

SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D35000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F101539000000 movups xmm2, xmmword ptr [reloc @RWD16]
F2480F2CC0 cvttsd2si rax, xmm0
66480F6EC0 movd xmm0, rax
0F28D8 movaps xmm3, xmm0
660F6CD8 punpcklqdq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
66480F7ED8 movd rax, xmm3
G_M000_IG03: ;; offset=0x0045
C3 ret RWD00 dq	43E0000000000000h, 43E0000000000000h
RWD16 dq	7FFFFFFFFFFFFFFFh, 7FFFFFFFFFFFFFFFh
; Total bytes of code 70

Pre-SSE41

Before

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToLong(float):long (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E8B377C95F call CORINFO_HELP_DBL2LNG
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: double to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint DoubleToUint(double val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + DoubleToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855051200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17F0878C0 vcvttsd2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1E000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0032
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 51

SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F10151D000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0035
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 54

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F2480F2CC0 cvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:DoubleToUint(double):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8A7D1B45F call CORINFO_HELP_DBL2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static uint FloatToUint(float val)
{
return (uint)val;
}
public static void Main(string[] args)
{
Console.WriteLine("14.5f: " + FloatToUint(14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0008
C3 ret ; Total bytes of code 9

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855051200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17E0878C0 vcvttss2usi eax, xmm0
G_M000_IG03: ;; offset=0x0014
C3 ret RWD00 dq	0000000008000088h, 0000000000000000h
; Total bytes of code 21

AVX

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E1FA2CC0 vcvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA5AC0 vcvtss2sd xmm0, xmm0, xmm0
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5E857D2 vxorps xmm2, xmm2, xmm2
C5F9C2D20D vcmppd xmm2, xmm0, xmm2, 13
C5E954C9 vandpd xmm1, xmm2, xmm1
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F8100D1A000000 vmovups xmm1, xmmword ptr [reloc @RWD00]
C5F9C2D10D vcmppd xmm2, xmm0, xmm1, 13
C4E3794BC120 vblendvpd xmm0 xmm0, xmm1, xmm2
C4E1FB2CC0 vcvttsd2si rax, xmm0
G_M000_IG03: ;; offset=0x0036
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 55

SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F5AC0 cvtss2sd xmm0, xmm0
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
0F57D2 xorps xmm2, xmm2
660FC2D002 cmppd xmm2, xmm0, 2
660F54CA andpd xmm1, xmm2
660F54C8 andpd xmm1, xmm0
0F101519000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28C2 movaps xmm0, xmm2
660FC2C102 cmppd xmm0, xmm1, 2
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F3480F2CC0 cvttss2si rax, xmm0
G_M000_IG03: ;; offset=0x0005
C3 ret ; Total bytes of code 6

After

; Assembly listing for method Program:FloatToUint(float):uint (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E867CCB75F call CORINFO_HELP_FLT2UINT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to uint packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector128<uint> FloatToUint128(Vector128<float> val)
{
return Vector128.ConvertToUInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToUint128(Vector128.Create(14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0007
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
C4E1FA2C442428 vcvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
C4E1FA2C44242C vcvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
C4E1FA2C542418 vcvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
C4E1FA2C54241C vcvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
C5F8280424 vmovaps xmm0, xmmword ptr [rsp]
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0063
4883C438 add rsp, 56
C3 ret ; Total bytes of code 104

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5F81002 vmovups xmm0, xmmword ptr [rdx]
62F37D0854050E00000000 vfixupimmps xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
62F17C0878C0 vcvttps2udq xmm0, xmm0
C5F81101 vmovups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x001F
C3 ret RWD00 dq	0800008808000088h, 0800008808000088h
; Total bytes of code 32

SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F30F5A442428 cvtss2sd xmm0, dword ptr [rsp+0x28]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57D2 xorps xmm2, xmm2
660FC2D102 cmppd xmm2, xmm1, 2
660F54C2 andpd xmm0, xmm2
660F54C1 andpd xmm0, xmm1
0F1015FB000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CC3 cvttsd2si rax, xmm3
89442430 mov dword ptr [rsp+0x30], eax
F30F5A44242C cvtss2sd xmm0, dword ptr [rsp+0x2C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CC1 cvttsd2si rax, xmm1
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F30F5A442418 cvtss2sd xmm0, dword ptr [rsp+0x18]
F20F12C8 movddup xmm1, xmm0
0F28C1 movaps xmm0, xmm1
660FC2C100 cmppd xmm0, xmm1, 0
0F57DB xorps xmm3, xmm3
660FC2D902 cmppd xmm3, xmm1, 2
660F54C3 andpd xmm0, xmm3
660F54C1 andpd xmm0, xmm1
0F28CA movaps xmm1, xmm2
660FC2C802 cmppd xmm1, xmm0, 2
0F28D8 movaps xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3815DA blendvpd xmm3, xmm2
F2480F2CD3 cvttsd2si rdx, xmm3
89542420 mov dword ptr [rsp+0x20], edx
F30F5A44241C cvtss2sd xmm0, dword ptr [rsp+0x1C]
F20F12C8 movddup xmm1, xmm0
0F28D9 movaps xmm3, xmm1
660FC2D900 cmppd xmm3, xmm1, 0
0F57C0 xorps xmm0, xmm0
660FC2C102 cmppd xmm0, xmm1, 2
660F54D8 andpd xmm3, xmm0
660F54D9 andpd xmm3, xmm1
0F28C2 movaps xmm0, xmm2
660FC2C302 cmppd xmm0, xmm3, 2
0F28CB movaps xmm1, xmm3
660F3815CA blendvpd xmm1, xmm2
F2480F2CD1 cvttsd2si rdx, xmm1
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x012B
4883C438 add rsp, 56
C3 ret RWD00 dq	41EFFFFFFFE00000h, 41EFFFFFFFE00000h
; Total bytes of code 304

Pre-SSE41

Before

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC38 sub rsp, 56
G_M000_IG02: ;; offset=0x0004
488B02 mov rax, qword ptr [rdx]
4889442428 mov qword ptr [rsp+0x28], rax
F3480F2C442428 cvttss2si rax, dword ptr [rsp+0x28]
89442430 mov dword ptr [rsp+0x30], eax
F3480F2C44242C cvttss2si rax, dword ptr [rsp+0x2C]
89442434 mov dword ptr [rsp+0x34], eax
488B442430 mov rax, qword ptr [rsp+0x30]
488B5208 mov rdx, qword ptr [rdx+0x08]
4889542418 mov qword ptr [rsp+0x18], rdx
F3480F2C542418 cvttss2si rdx, dword ptr [rsp+0x18]
89542420 mov dword ptr [rsp+0x20], edx
F3480F2C54241C cvttss2si rdx, dword ptr [rsp+0x1C]
89542424 mov dword ptr [rsp+0x24], edx
488B542420 mov rdx, qword ptr [rsp+0x20]
48890424 mov qword ptr [rsp], rax
4889542408 mov qword ptr [rsp+0x08], rdx
0F280424 movaps xmm0, xmmword ptr [rsp]
0F1101 movups xmmword ptr [rcx], xmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x005E
4883C438 add rsp, 56
C3 ret ; Total bytes of code 99

After

; Assembly listing for method Program:FloatToUint128(System.Runtime.Intrinsics.Vector128`1[float]):System.Runtime.Intrinsics.Vector128`1[uint] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 8 single block inlinees; 4 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4883EC50 sub rsp, 80
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x000D
488B03 mov rax, qword ptr [rbx]
4889442440 mov qword ptr [rsp+0x40], rax
F30F10442440 movss xmm0, dword ptr [rsp+0x40]
E820CCB45F call CORINFO_HELP_FLT2UINT
89442448 mov dword ptr [rsp+0x48], eax
F30F10442444 movss xmm0, dword ptr [rsp+0x44]
E811CCB45F call CORINFO_HELP_FLT2UINT
8944244C mov dword ptr [rsp+0x4C], eax
488B7C2448 mov rdi, qword ptr [rsp+0x48]
488B4308 mov rax, qword ptr [rbx+0x08]
4889442430 mov qword ptr [rsp+0x30], rax
F30F10442430 movss xmm0, dword ptr [rsp+0x30]
E8F4CBB45F call CORINFO_HELP_FLT2UINT
89442438 mov dword ptr [rsp+0x38], eax
F30F10442434 movss xmm0, dword ptr [rsp+0x34]
E8E5CBB45F call CORINFO_HELP_FLT2UINT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48897C2420 mov qword ptr [rsp+0x20], rdi
4889442428 mov qword ptr [rsp+0x28], rax
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F1106 movups xmmword ptr [rsi], xmm0
488BC6 mov rax, rsi
G_M000_IG03: ;; offset=0x0079
4883C450 add rsp, 80
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 129

Case: double to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int DoubleToInt(double val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + DoubleToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F3FD0855053200000000 vfixupimmsd xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F9C20D390000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FB2CC0 vcvttsd2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

###AVX
Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB2CC0 vcvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FB12C0 vmovddup xmm0, xmm0
C5F9C2C800 vcmppd xmm1, xmm0, xmm0, 0
C5F154C0 vandpd xmm0, xmm1, xmm0
C5F9C20D2A0000000D vcmppd xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FB2CC0 vcvttsd2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052300000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0031
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 50

SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F12C0 movddup xmm0, xmm0
0F28C8 movaps xmm1, xmm0
660FC2C800 cmppd xmm1, xmm0, 0
660F54C1 andpd xmm0, xmm1
0F100D29000000 movups xmm1, xmmword ptr [reloc @RWD00]
660FC2C802 cmppd xmm1, xmm0, 2
0F10152D000000 movups xmm2, xmmword ptr [reloc @RWD16]
F20F2CC0 cvttsd2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x003C
C3 ret RWD00 dq	41DFFFFFFFC00000h, 41DFFFFFFFC00000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 61

Pre-SSE41

Before

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F20F2CC0 cvttsd2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:DoubleToInt(double):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
E8D7D0B75F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000A
4883C428 add rsp, 40
C3 ret ; Total bytes of code 15

Case: float to int scalar

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static int FloatToInt(float val)
{
return (int)val;
}
public static void Main(string[] args)
{
Console.WriteLine("-14.5f: " + FloatToInt(-14.5f));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0007
C3 ret ; Total bytes of code 8

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F37D0855053200000000 vfixupimmss xmm0, xmm0, xmmword ptr [reloc @RWD00], 0
C5F8C20D390000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD16], 13
C5F8101541000000 vmovups xmm2, xmmword ptr [reloc @RWD32]
C5FA2CC0 vcvttss2si eax, xmm0
62F27D087CC0 vpbroadcastd xmm0, eax
62F36D0825C8CA vpternlogd xmm1, xmm2, xmm0, -54
C5F97EC8 vmovd eax, xmm1
G_M000_IG03: ;; offset=0x0034
C3 ret RWD00 dq	0000000000000088h, 0000000000000000h
RWD16 dq	4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

AVX

*Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FA2CC0 vcvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C4E37904C000 vpermilps xmm0, xmm0, 0
C5F8C2C800 vcmpps xmm1, xmm0, xmm0, 0
C5F054C0 vandps xmm0, xmm1, xmm0
C5F8C20D280000000D vcmpps xmm1, xmm0, xmmword ptr [reloc @RWD00], 13
C5FA2CC0 vcvttss2si eax, xmm0
C5F96EC0 vmovd xmm0, eax
C5F970C000 vpshufd xmm0, xmm0, 0
C4E3794C052100000010 vpblendvb xmm0 xmm0, xmmword ptr [reloc @RWD16], xmm1
C5F97EC0 vmovd eax, xmm0
G_M000_IG03: ;; offset=0x0033
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 52

SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0FC6C000 shufps xmm0, xmm0, 0
0F28C8 movaps xmm1, xmm0
0FC2C800 cmpps xmm1, xmm0, 0
0F54C1 andps xmm0, xmm1
0F100D2B000000 movups xmm1, xmmword ptr [reloc @RWD00]
0FC2C802 cmpps xmm1, xmm0, 2
0F101530000000 movups xmm2, xmmword ptr [reloc @RWD16]
F30F2CC0 cvttss2si eax, xmm0
660F6ED8 movd xmm3, eax
660F70DB00 pshufd xmm3, xmm3, 0
0F28C1 movaps xmm0, xmm1
660F3810DA pblendvb xmm3, xmm2
660F7ED8 movd eax, xmm3
G_M000_IG03: ;; offset=0x0039
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 58

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
F30F2CC0 cvttss2si eax, xmm0
G_M000_IG03: ;; offset=0x0004
C3 ret ; Total bytes of code 5

After

; Assembly listing for method Program:FloatToInt(float):int (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
G_M000_IG02: ;; offset=0x0004
F30F5AC0 cvtss2sd xmm0, xmm0
E863C9B55F call CORINFO_HELP_DBL2INT
90 nop G_M000_IG03: ;; offset=0x000E
4883C428 add rsp, 40
C3 ret ; Total bytes of code 19

Case: float to int packed

Test code

public class Program
{
[MethodImplAttribute(MethodImplOptions.NoInlining)]
public static Vector512<int> FloatToInt512(Vector512<float> val)
{
return Vector512.ConvertToInt32(val); ;
}
public static void Main(string[] args)
{
Console.WriteLine(FloatToInt512(Vector512.Create(-14.5f)));
}
}

AVX512

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17E485B02 vcvttps2dq zmm0, zmmword ptr [rdx]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0012
C5F877 vzeroupper C3 ret ; Total bytes of code 22

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX512 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
C5F877 vzeroupper G_M000_IG02: ;; offset=0x0003
62F17C481002 vmovups zmm0, zmmword ptr [rdx]
62F37D4854054C00000000 vfixupimmps zmm0, zmm0, zmmword ptr [reloc @RWD00], 0
62F17C48C20D810000000D vcmpps k1, zmm0, zmmword ptr [reloc @RWD64], 13
62F17E485BC0 vcvttps2dq zmm0, zmm0
62F27D496405B1000000 vpblendmd zmm0 {k1}, zmm0, zmmword ptr [reloc @RWD128]
62F17C481101 vmovups zmmword ptr [rcx], zmm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0038
C5F877 vzeroupper C3 ret RWD00 dq	0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h, 0000008800000088h
RWD64 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD128 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh

###AVX
Before

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FE5B02 vcvttps2dq ymm0, ymmword ptr [rdx]
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x000B
C5F877 vzeroupper C3 ret ; Total bytes of code 15

After

; Assembly listing for method Program:FloatToInt256(System.Runtime.Intrinsics.Vector256`1[float]):System.Runtime.Intrinsics.Vector256`1[int] (FullOpts)
; Emitting BLENDED_CODE for X64 with AVX - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
C5FC1002 vmovups ymm0, ymmword ptr [rdx]
C5FCC2C800 vcmpps ymm1, ymm0, ymm0, 0
C5F454C0 vandps ymm0, ymm1, ymm0
C5FCC20D3A0000000D vcmpps ymm1, ymm0, ymmword ptr [reloc @RWD00], 13
C5F4541552000000 vandps ymm2, ymm1, ymmword ptr [reloc @RWD32]
C5FE5BC0 vcvttps2dq ymm0, ymm0
C5F455C0 vandnps ymm0, ymm1, ymm0
C5FC56C2 vorps ymm0, ymm0, ymm2
C5FC1101 vmovups ymmword ptr [rcx], ymm0
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C5F877 vzeroupper C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h, 4F0000004F000000h
RWD32 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 53

SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
4883EC28 sub rsp, 40
0F29742410 movaps xmmword ptr [rsp+0x10], xmm6
0F293C24 movaps xmmword ptr [rsp], xmm7
G_M000_IG02: ;; offset=0x000D
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
0F28D0 movaps xmm2, xmm0
0FC2D000 cmpps xmm2, xmm0, 0
0F54C2 andps xmm0, xmm2
0F10159B000000 movups xmm2, xmmword ptr [reloc @RWD00]
0F28DA movaps xmm3, xmm2
0FC2D802 cmpps xmm3, xmm0, 2
0F10259D000000 movups xmm4, xmmword ptr [reloc @RWD16]
F30F5BE8 cvttps2dq xmm5, xmm0
0F28C3 movaps xmm0, xmm3
660F3810EC pblendvb xmm5, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0F28CA movaps xmm1, xmm2
0FC2C802 cmpps xmm1, xmm0, 2
F30F5BD8 cvttps2dq xmm3, xmm0
0F28C1 movaps xmm0, xmm1
660F3810DC pblendvb xmm3, xmm4
0F104220 movups xmm0, xmmword ptr [rdx+0x20]
0F104A30 movups xmm1, xmmword ptr [rdx+0x30]
0F28F0 movaps xmm6, xmm0
0FC2F000 cmpps xmm6, xmm0, 0
0F54C6 andps xmm0, xmm6
0F28F2 movaps xmm6, xmm2
0FC2F002 cmpps xmm6, xmm0, 2
F30F5BF8 cvttps2dq xmm7, xmm0
0F28C6 movaps xmm0, xmm6
660F3810FC pblendvb xmm7, xmm4
0F28C1 movaps xmm0, xmm1
0FC2C100 cmpps xmm0, xmm1, 0
0F54C1 andps xmm0, xmm1
0FC2D002 cmpps xmm2, xmm0, 2
F30F5BC8 cvttps2dq xmm1, xmm0
0F28C2 movaps xmm0, xmm2
660F3810CC pblendvb xmm1, xmm4
0F1129 movups xmmword ptr [rcx], xmm5
0F115910 movups xmmword ptr [rcx+0x10], xmm3
0F117920 movups xmmword ptr [rcx+0x20], xmm7
0F114930 movups xmmword ptr [rcx+0x30], xmm1
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x00AD
0F28742410 movaps xmm6, xmmword ptr [rsp+0x10]
0F283C24 movaps xmm7, xmmword ptr [rsp]
4883C428 add rsp, 40
C3 ret RWD00 dq	4F0000004F000000h, 4F0000004F000000h
RWD16 dq	7FFFFFFF7FFFFFFFh, 7FFFFFFF7FFFFFFFh
; Total bytes of code 187

Pre-SSE41

Before

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 13 single block inlinees; 5 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
G_M000_IG02: ;; offset=0x0000
0F1002 movups xmm0, xmmword ptr [rdx]
0F104A10 movups xmm1, xmmword ptr [rdx+0x10]
F30F5BC0 cvttps2dq xmm0, xmm0
F30F5BC9 cvttps2dq xmm1, xmm1
0F105220 movups xmm2, xmmword ptr [rdx+0x20]
0F105A30 movups xmm3, xmmword ptr [rdx+0x30]
F30F5BD2 cvttps2dq xmm2, xmm2
F30F5BDB cvttps2dq xmm3, xmm3
0F1101 movups xmmword ptr [rcx], xmm0
0F114910 movups xmmword ptr [rcx+0x10], xmm1
0F115120 movups xmmword ptr [rcx+0x20], xmm2
0F115930 movups xmmword ptr [rcx+0x30], xmm3
488BC1 mov rax, rcx
G_M000_IG03: ;; offset=0x0031
C3 ret ; Total bytes of code 50

After

; Assembly listing for method Program:FloatToInt512(System.Runtime.Intrinsics.Vector512`1[float]):System.Runtime.Intrinsics.Vector512`1[int] (FullOpts)
; Emitting BLENDED_CODE for generic X64 - Windows
; FullOpts code
; optimized code
; rsp based frame
; partially interruptible
; No PGO data
; 0 inlinees with PGO data; 45 single block inlinees; 21 inlinees without PGO data
G_M000_IG01: ;; offset=0x0000
57 push rdi
56 push rsi
53 push rbx
4881EC60010000 sub rsp, 352
0F29B42450010000 movaps xmmword ptr [rsp+0x150], xmm6
0F29BC2440010000 movaps xmmword ptr [rsp+0x140], xmm7
440F29842430010000 movaps xmmword ptr [rsp+0x130], xmm8
440F298C2420010000 movaps xmmword ptr [rsp+0x120], xmm9
488BF1 mov rsi, rcx
488BDA mov rbx, rdx
G_M000_IG02: ;; offset=0x0032
0F1003 movups xmm0, xmmword ptr [rbx]
0F107310 movups xmm6, xmmword ptr [rbx+0x10]
0F29842410010000 movaps xmmword ptr [rsp+0x110], xmm0
488B842410010000 mov rax, qword ptr [rsp+0x110]
4889842400010000 mov qword ptr [rsp+0x100], rax
F30F5A842400010000 cvtss2sd xmm0, dword ptr [rsp+0x100]
E891C6B55F call CORINFO_HELP_DBL2INT
89842408010000 mov dword ptr [rsp+0x108], eax
F30F5A842404010000 cvtss2sd xmm0, dword ptr [rsp+0x104]
E87CC6B55F call CORINFO_HELP_DBL2INT
8984240C010000 mov dword ptr [rsp+0x10C], eax
488BBC2408010000 mov rdi, qword ptr [rsp+0x108]
488B842418010000 mov rax, qword ptr [rsp+0x118]
48898424F0000000 mov qword ptr [rsp+0xF0], rax
F30F5A8424F0000000 cvtss2sd xmm0, dword ptr [rsp+0xF0]
E84FC6B55F call CORINFO_HELP_DBL2INT
898424F8000000 mov dword ptr [rsp+0xF8], eax
F30F5A8424F4000000 cvtss2sd xmm0, dword ptr [rsp+0xF4]
E83AC6B55F call CORINFO_HELP_DBL2INT
898424FC000000 mov dword ptr [rsp+0xFC], eax
488B8424F8000000 mov rax, qword ptr [rsp+0xF8]
4889BC24E0000000 mov qword ptr [rsp+0xE0], rdi
48898424E8000000 mov qword ptr [rsp+0xE8], rax
0F28BC24E0000000 movaps xmm7, xmmword ptr [rsp+0xE0]
0F29B424D0000000 movaps xmmword ptr [rsp+0xD0], xmm6
488B8424D0000000 mov rax, qword ptr [rsp+0xD0]
48898424C0000000 mov qword ptr [rsp+0xC0], rax
F30F5A8424C0000000 cvtss2sd xmm0, dword ptr [rsp+0xC0]
E8EDC5B55F call CORINFO_HELP_DBL2INT
898424C8000000 mov dword ptr [rsp+0xC8], eax
F30F5A8424C4000000 cvtss2sd xmm0, dword ptr [rsp+0xC4]
E8D8C5B55F call CORINFO_HELP_DBL2INT
898424CC000000 mov dword ptr [rsp+0xCC], eax
488BBC24C8000000 mov rdi, qword ptr [rsp+0xC8]
488B8424D8000000 mov rax, qword ptr [rsp+0xD8]
48898424B0000000 mov qword ptr [rsp+0xB0], rax
F30F5A8424B0000000 cvtss2sd xmm0, dword ptr [rsp+0xB0]
E8ABC5B55F call CORINFO_HELP_DBL2INT
898424B8000000 mov dword ptr [rsp+0xB8], eax
F30F5A8424B4000000 cvtss2sd xmm0, dword ptr [rsp+0xB4]
E896C5B55F call CORINFO_HELP_DBL2INT
898424BC000000 mov dword ptr [rsp+0xBC], eax
488B8424B8000000 mov rax, qword ptr [rsp+0xB8]
4889BC24A0000000 mov qword ptr [rsp+0xA0], rdi
48898424A8000000 mov qword ptr [rsp+0xA8], rax
G_M000_IG03: ;; offset=0x0179
0F28B424A0000000 movaps xmm6, xmmword ptr [rsp+0xA0]
0F104320 movups xmm0, xmmword ptr [rbx+0x20]
440F104330 movups xmm8, xmmword ptr [rbx+0x30]
0F29842490000000 movaps xmmword ptr [rsp+0x90], xmm0
488B842490000000 mov rax, qword ptr [rsp+0x90]
4889842480000000 mov qword ptr [rsp+0x80], rax
F30F5A842480000000 cvtss2sd xmm0, dword ptr [rsp+0x80]
E840C5B55F call CORINFO_HELP_DBL2INT
89842488000000 mov dword ptr [rsp+0x88], eax
F30F5A842484000000 cvtss2sd xmm0, dword ptr [rsp+0x84]
E82BC5B55F call CORINFO_HELP_DBL2INT
8984248C000000 mov dword ptr [rsp+0x8C], eax
488B9C2488000000 mov rbx, qword ptr [rsp+0x88]
488B842498000000 mov rax, qword ptr [rsp+0x98]
4889442470 mov qword ptr [rsp+0x70], rax
F30F5A442470 cvtss2sd xmm0, dword ptr [rsp+0x70]
E804C5B55F call CORINFO_HELP_DBL2INT
89442478 mov dword ptr [rsp+0x78], eax
F30F5A442474 cvtss2sd xmm0, dword ptr [rsp+0x74]
E8F5C4B55F call CORINFO_HELP_DBL2INT
8944247C mov dword ptr [rsp+0x7C], eax
488B442478 mov rax, qword ptr [rsp+0x78]
48895C2460 mov qword ptr [rsp+0x60], rbx
4889442468 mov qword ptr [rsp+0x68], rax
440F284C2460 movaps xmm9, xmmword ptr [rsp+0x60]
440F29442450 movaps xmmword ptr [rsp+0x50], xmm8
488B442450 mov rax, qword ptr [rsp+0x50]
4889442440 mov qword ptr [rsp+0x40], rax
F30F5A442440 cvtss2sd xmm0, dword ptr [rsp+0x40]
E8C1C4B55F call CORINFO_HELP_DBL2INT
89442448 mov dword ptr [rsp+0x48], eax
F30F5A442444 cvtss2sd xmm0, dword ptr [rsp+0x44]
E8B2C4B55F call CORINFO_HELP_DBL2INT
8944244C mov dword ptr [rsp+0x4C], eax
488B5C2448 mov rbx, qword ptr [rsp+0x48]
488B442458 mov rax, qword ptr [rsp+0x58]
4889442430 mov qword ptr [rsp+0x30], rax
F30F5A442430 cvtss2sd xmm0, dword ptr [rsp+0x30]
E894C4B55F call CORINFO_HELP_DBL2INT
89442438 mov dword ptr [rsp+0x38], eax
F30F5A442434 cvtss2sd xmm0, dword ptr [rsp+0x34]
E885C4B55F call CORINFO_HELP_DBL2INT
8944243C mov dword ptr [rsp+0x3C], eax
488B442438 mov rax, qword ptr [rsp+0x38]
48895C2420 mov qword ptr [rsp+0x20], rbx
G_M000_IG04: ;; offset=0x0279
4889442428 mov qword ptr [rsp+0x28], rax
0F113E movups xmmword ptr [rsi], xmm7
0F117610 movups xmmword ptr [rsi+0x10], xmm6
440F114E20 movups xmmword ptr [rsi+0x20], xmm9
0F28442420 movaps xmm0, xmmword ptr [rsp+0x20]
0F114630 movups xmmword ptr [rsi+0x30], xmm0
488BC6 mov rax, rsi
G_M000_IG05: ;; offset=0x0296
0F28B42450010000 movaps xmm6, xmmword ptr [rsp+0x150]
0F28BC2440010000 movaps xmm7, xmmword ptr [rsp+0x140]
440F28842430010000 movaps xmm8, xmmword ptr [rsp+0x130]
440F288C2420010000 movaps xmm9, xmmword ptr [rsp+0x120]
4881C460010000 add rsp, 352
5B pop rbx
5E pop rsi
5F pop rdi
C3 ret ; Total bytes of code 707

Perf

Base - No changes. Same environment variables
Diff - PR changes. Same environment variables as Base.
Diff / Base - Ratio of diff and base

Scalar
Capture_perf

Packed
Capture_perf_vector

tracking #40234

@ghostghost added community-contribution Indicates that the PR has been added by a community member area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labels Jan 26, 2024
@ghost

Copy link
Copy Markdown

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

Issue Details

NO NEED FOR REVIEW AS OF NOW

Author:khushal1996
Assignees:-
Labels:

area-CodeGen-coreclr, community-contribution

Milestone:-

@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.13%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
libraries_tests.run.linux.arm64.Release.mch-0.01%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.20% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.10%
libraries_tests.run.linux.x64.Release.mch+0.06%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.08%
coreclr_tests.run.linux.x64.checked.mch-0.20%
MinOpts (0.00% to +0.17%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.07%
benchmarks.run_pgo.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch+0.13%
coreclr_tests.run.linux.x64.checked.mch+0.17%
FullOpts (-0.43% to +0.21%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.18%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.pmi.linux.x64.checked.mch+0.21%
libraries.crossgen2.linux.x64.checked.mch+0.02%
realworld.run.linux.x64.checked.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
coreclr_tests.run.linux.x64.checked.mch-0.43%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.56% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.56%
benchmarks.run_tiered.linux.arm64.checked.mch-0.03%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
FullOpts (-0.65% to +0.10%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.65%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.08%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.09%
libraries_tests.run.linux.arm64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.06%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%
MinOpts (-0.00% to +0.24%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.24%
libraries_tests.run.linux.x64.Release.mch+0.03%
FullOpts (-0.63% to +0.74%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.74%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.09%
libraries_tests.run.linux.x64.Release.mch-0.08%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.21%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.45% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.45%
benchmarks.run_tiered.osx.arm64.checked.mch-0.09%
coreclr_tests.run.osx.arm64.checked.mch-0.04%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.00% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
FullOpts (-0.57% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.57%
benchmarks.run_tiered.osx.arm64.checked.mch-0.24%
coreclr_tests.run.osx.arm64.checked.mch-0.11%
libraries.pmi.osx.arm64.checked.mch+0.06%
libraries_tests.run.osx.arm64.Release.mch-0.14%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.77% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.77%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch+0.01%
benchmarks.run_tiered.windows.arm64.checked.mch+0.01%
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.93% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.93%
benchmarks.run_tiered.windows.arm64.checked.mch-0.14%
coreclr_tests.run.windows.arm64.checked.mch-0.10%
libraries.pmi.windows.arm64.checked.mch+0.08%
libraries_tests.run.windows.arm64.Release.mch-0.11%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-11.45% to -0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.38%
benchmarks.run_tiered.windows.x64.checked.mch-0.49%
coreclr_tests.run.windows.x64.checked.mch-1.23%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.30%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
FullOpts (-11.45% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.23%
benchmarks.run_pgo.windows.x64.checked.mch-0.31%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.45%
libraries.pmi.windows.x64.checked.mch-1.93%
libraries_tests.run.windows.x64.Release.mch-2.41%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.12%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.10%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
libraries.pmi.linux.arm64.checked.mch+0.25%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch+0.13%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
libraries.pmi.linux.arm64.checked.mch+0.25%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.05%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
libraries_tests.run.linux.x64.Release.mch+0.08%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries.pmi.linux.x64.checked.mch+0.20%
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 95,287 contexts (40,999 MinOpts, 54,288 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 54,574 (35.48%)

Overall (+12,884 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,346,400+832
benchmarks.run_pgo.linux.arm64.checked.mch3,029,072-380
benchmarks.run_tiered.linux.arm64.checked.mch2,686,108+16
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch2,011,980+184
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,975,784+4,320
MinOpts (-512 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,177,252-220
benchmarks.run_tiered.linux.arm64.checked.mch2,399,152-236
libraries_tests.run.linux.arm64.Release.mch1,918,600-56
FullOpts (+13,396 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,290,156+832
benchmarks.run_pgo.linux.arm64.checked.mch851,820-160
benchmarks.run_tiered.linux.arm64.checked.mch286,956+252
coreclr_tests.run.linux.arm64.checked.mch265,276-32
libraries.pmi.linux.arm64.checked.mch1,426,088+4,784
libraries_tests.run.linux.arm64.Release.mch93,380+240
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,298,624+3,160
realworld.run.linux.arm64.checked.mch1,961,272+4,320

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 90,586 contexts (40,285 MinOpts, 50,301 FullOpts).

MISSED contexts: base: 0 (0.00%), diff: 47,361 (33.47%)

Overall (+12,056 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,340,312+884
benchmarks.run_pgo.osx.arm64.checked.mch2,401,052+8
benchmarks.run_tiered.osx.arm64.checked.mch2,330,800-192
coreclr_tests.run.osx.arm64.checked.mch528,604+100
libraries.pmi.osx.arm64.checked.mch1,311,668+3,248
libraries_tests.run.osx.arm64.Release.mch2,054,128-68
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,968+5,284
MinOpts (-640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,007,056-228
benchmarks.run_tiered.osx.arm64.checked.mch2,061,072-352
coreclr_tests.run.osx.arm64.checked.mch404,024-4
libraries_tests.run.osx.arm64.Release.mch2,038,356-56
FullOpts (+12,696 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,339,888+884
benchmarks.run_pgo.osx.arm64.checked.mch393,996+236
benchmarks.run_tiered.osx.arm64.checked.mch269,728+160
coreclr_tests.run.osx.arm64.checked.mch124,580+104
libraries.pmi.osx.arm64.checked.mch1,310,832+3,248
libraries_tests.run.osx.arm64.Release.mch15,772-12
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,296,204+2,792
realworld.run.osx.arm64.checked.mch2,049,868+5,284

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 95,065 contexts (36,507 MinOpts, 58,558 FullOpts).

MISSED contexts: base: 2 (0.00%), diff: 54,513 (35.50%)

Overall (+10,872 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,696+836
benchmarks.run_pgo.windows.arm64.checked.mch2,273,500-680
benchmarks.run_tiered.windows.arm64.checked.mch2,189,152+216
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch2,089,172+328
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,440+4,352
MinOpts (-248 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,757,772-96
benchmarks.run_tiered.windows.arm64.checked.mch1,926,004-96
libraries_tests.run.windows.arm64.Release.mch2,005,008-56
FullOpts (+11,120 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,133,548+836
benchmarks.run_pgo.windows.arm64.checked.mch515,728-584
benchmarks.run_tiered.windows.arm64.checked.mch263,148+312
coreclr_tests.run.windows.arm64.checked.mch275,388+20
libraries.pmi.windows.arm64.checked.mch1,249,004+2,720
libraries_tests.run.windows.arm64.Release.mch84,164+384
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,240,428+3,080
realworld.run.windows.arm64.checked.mch1,943,340+4,352

Details here


Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 104,582 contexts (34,422 MinOpts, 70,160 FullOpts).

MISSED contexts: base: 2,785 (1.74%), diff: 52,364 (32.62%)

Overall (+7,880 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,221,696+798
benchmarks.run_pgo.linux.arm.checked.mch2,429,618-5,282
benchmarks.run_tiered.linux.arm.checked.mch2,096,812+492
coreclr_tests.run.linux.arm.checked.mch405,476+218
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch939,238+810
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,364,120+3,464
MinOpts (-226 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch1,196,190-152
benchmarks.run_tiered.linux.arm.checked.mch1,501,706-126
coreclr_tests.run.linux.arm.checked.mch295,394+92
libraries_tests.run.linux.arm.Release.mch752,254-40
FullOpts (+8,106 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,143,408+798
benchmarks.run_pgo.linux.arm.checked.mch1,233,428-5,130
benchmarks.run_tiered.linux.arm.checked.mch595,106+618
coreclr_tests.run.linux.arm.checked.mch110,082+126
libraries.pmi.linux.arm.checked.mch1,144,640+4,704
libraries_tests.run.linux.arm.Release.mch186,984+850
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch894,282+2,676
realworld.run.linux.arm.checked.mch3,354,282+3,464

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 64,348 contexts (22,203 MinOpts, 42,145 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 74,344 (52.26%)

Overall (+6,474 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,560+506
benchmarks.run_pgo.windows.x86.checked.mch841,834-1,320
benchmarks.run_tiered.windows.x86.checked.mch777,492+343
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch796,580+860
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,958+1,261
MinOpts (-42 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_tiered.windows.x86.checked.mch571,759-8
libraries_tests.run.windows.x86.Release.mch703,554-34
FullOpts (+6,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch378,435+506
benchmarks.run_pgo.windows.x86.checked.mch334,595-1,320
benchmarks.run_tiered.windows.x86.checked.mch205,733+351
coreclr_tests.run.windows.x86.checked.mch88,890-11
libraries.pmi.windows.x86.checked.mch1,533,349+3,178
libraries_tests.run.windows.x86.Release.mch93,026+894
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch359,330+1,657
realworld.run.windows.x86.checked.mch559,901+1,261

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.58% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.05%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.06%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%
FullOpts (-0.67% to +0.07%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.67%
benchmarks.run_tiered.linux.arm64.checked.mch-0.11%
coreclr_tests.run.linux.arm64.checked.mch-0.11%
libraries.crossgen2.linux.arm64.checked.mch-0.22%
libraries.pmi.linux.arm64.checked.mch+0.07%
libraries_tests.run.linux.arm64.Release.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.05%
realworld.run.linux.arm64.checked.mch+0.07%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.02%

Throughput diffs for linux/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.55% to +0.55%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.55%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.12%
MinOpts (-0.01% to +0.23%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.01%
coreclr_tests.run.linux.x64.checked.mch+0.23%
libraries_tests.run.linux.x64.Release.mch+0.02%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
FullOpts (-0.63% to +0.73%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.05%
coreclr_tests.run.linux.x64.checked.mch+0.73%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries.pmi.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%

Throughput diffs for osx/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.46% to +0.06%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.46%
benchmarks.run_tiered.osx.arm64.checked.mch-0.10%
coreclr_tests.run.osx.arm64.checked.mch-0.05%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.06%
FullOpts (-0.59% to +0.07%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.03%
benchmarks.run_pgo.osx.arm64.checked.mch-0.59%
benchmarks.run_tiered.osx.arm64.checked.mch-0.26%
coreclr_tests.run.osx.arm64.checked.mch-0.14%
libraries.crossgen2.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.03%
libraries_tests.run.osx.arm64.Release.mch-0.17%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.04%
realworld.run.osx.arm64.checked.mch+0.07%

Throughput diffs for windows/arm64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.78% to +0.06%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.78%
benchmarks.run_tiered.windows.arm64.checked.mch-0.07%
coreclr_tests.run.windows.arm64.checked.mch-0.05%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.06%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%
MinOpts (-0.01% to +0.00%)
CollectionPDIFF
coreclr_tests.run.windows.arm64.checked.mch-0.01%
FullOpts (-0.95% to +0.07%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-0.02%
benchmarks.run_pgo.windows.arm64.checked.mch-0.95%
benchmarks.run_tiered.windows.arm64.checked.mch-0.16%
coreclr_tests.run.windows.arm64.checked.mch-0.12%
libraries.crossgen2.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.06%
libraries_tests.run.windows.arm64.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.04%
realworld.run.windows.arm64.checked.mch+0.07%
smoke_tests.nativeaot.windows.arm64.checked.mch-0.02%

Throughput diffs for windows/x64 ran on windows/x64

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-11.46% to -0.39%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.54%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.39%
benchmarks.run_tiered.windows.x64.checked.mch-0.50%
coreclr_tests.run.windows.x64.checked.mch-1.24%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.04%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.29%
realworld.run.windows.x64.checked.mch-0.63%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%
MinOpts (-9.46% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-0.96%
benchmarks.run_tiered.windows.x64.checked.mch-0.74%
coreclr_tests.run.windows.x64.checked.mch-3.65%
libraries_tests.run.windows.x64.Release.mch-1.49%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-9.46%
smoke_tests.nativeaot.windows.x64.checked.mch-0.01%
FullOpts (-11.46% to +0.34%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.37%
benchmarks.run.windows.x64.checked.mch-1.24%
benchmarks.run_pgo.windows.x64.checked.mch-0.32%
benchmarks.run_tiered.windows.x64.checked.mch-0.24%
coreclr_tests.run.windows.x64.checked.mch+0.34%
libraries.crossgen2.windows.x64.checked.mch-11.46%
libraries.pmi.windows.x64.checked.mch-1.94%
libraries_tests.run.windows.x64.Release.mch-2.42%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.26%
realworld.run.windows.x64.checked.mch-0.64%
smoke_tests.nativeaot.windows.x64.checked.mch-2.13%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.36% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.15%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.36%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
MinOpts (-0.01% to +1.09%)
CollectionPDIFF
benchmarks.run_tiered.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch+0.01%
coreclr_tests.run.linux.arm64.checked.mch+1.09%
FullOpts (-0.55% to +0.25%)
CollectionPDIFF
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.46%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.55%
benchmarks.run.linux.arm64.checked.mch-0.13%
libraries_tests.run.linux.arm64.Release.mch-0.01%
libraries.pmi.linux.arm64.checked.mch+0.25%
realworld.run.linux.arm64.checked.mch+0.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.21% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.21%
libraries_tests.run.linux.x64.Release.mch+0.05%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.09%
benchmarks.run_pgo.linux.x64.checked.mch-0.11%
libraries.pmi.linux.x64.checked.mch+0.20%
MinOpts (0.00% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch+0.06%
coreclr_tests.run.linux.x64.checked.mch+0.15%
libraries_tests.run.linux.x64.Release.mch+0.03%
benchmarks.run_tiered.linux.x64.checked.mch+0.11%
benchmarks.run_pgo.linux.x64.checked.mch+0.05%
FullOpts (-0.44% to +0.20%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.19%
coreclr_tests.run.linux.x64.checked.mch-0.44%
libraries_tests.run.linux.x64.Release.mch+0.08%
libraries.crossgen2.linux.x64.checked.mch+0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.15%
benchmarks.run_tiered.linux.x64.checked.mch-0.36%
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries.pmi.linux.x64.checked.mch+0.20%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


Throughput diffs for linux/arm ran on linux/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-0.35% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.35%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.03%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (0.00% to +0.02%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.01%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
libraries_tests.run.linux.arm.Release.mch+0.01%
FullOpts (-0.39% to +0.15%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.07%
benchmarks.run_pgo.linux.arm.checked.mch-0.39%
benchmarks.run_tiered.linux.arm.checked.mch+0.11%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.12%
libraries_tests.run.linux.arm.Release.mch-0.05%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.15%

Throughput diffs for windows/x86 ran on windows/x86

Warning: Different compilers used for base and diff JITs. Results may be misleading.
Base JIT's compiler: MSVC 193933218
Diff JIT's compiler: MSVC 193933321

Overall (-1.58% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.58%
benchmarks.run_tiered.windows.x86.checked.mch-0.18%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.07%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.01%
FullOpts (-1.80% to +0.11%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.19%
benchmarks.run_pgo.windows.x86.checked.mch-1.80%
benchmarks.run_tiered.windows.x86.checked.mch-0.32%
coreclr_tests.run.windows.x86.checked.mch-0.20%
libraries.pmi.windows.x86.checked.mch+0.11%
libraries_tests.run.windows.x86.Release.mch-0.12%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-0.01%
realworld.run.windows.x86.checked.mch+0.09%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 108,959 contexts (31,685 MinOpts, 77,274 FullOpts).

MISSED contexts: base: 3,443 (1.99%), diff: 60,787 (35.10%)

Overall (+11,058 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,121,796+794
benchmarks.run_pgo.linux.arm.checked.mch10,036,728-2,712
benchmarks.run_tiered.linux.arm.checked.mch1,965,850+478
coreclr_tests.run.linux.arm.checked.mch402,396+218
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch1,038,666+1,514
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,522+2,778
realworld.run.linux.arm.checked.mch3,308,824+3,168
MinOpts (-100 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-32
benchmarks.run_tiered.linux.arm.checked.mch1,379,422-126
coreclr_tests.run.linux.arm.checked.mch293,108+92
libraries_tests.run.linux.arm.Release.mch246,546-34
FullOpts (+11,158 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch1,060,860+794
benchmarks.run_pgo.linux.arm.checked.mch6,127,226-2,680
benchmarks.run_tiered.linux.arm.checked.mch586,428+604
coreclr_tests.run.linux.arm.checked.mch109,288+126
libraries.pmi.linux.arm.checked.mch1,326,876+4,820
libraries_tests.run.linux.arm.Release.mch792,120+1,548
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch907,470+2,778
realworld.run.linux.arm.checked.mch3,299,636+3,168

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 97,556 contexts (38,769 MinOpts, 58,787 FullOpts).

MISSED contexts: base: 3 (0.00%), diff: 57,529 (36.17%)

Overall (+14,796 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,357,636+816
benchmarks.run_pgo.linux.arm64.checked.mch2,918,668-312
benchmarks.run_tiered.linux.arm64.checked.mch2,370,440+32
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch2,439,884+1,924
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch2,002,024+4,312
MinOpts (-524 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,079,780-344
benchmarks.run_tiered.linux.arm64.checked.mch2,127,348-220
libraries_tests.run.linux.arm64.Release.mch1,955,684+40
FullOpts (+15,320 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,312,688+816
benchmarks.run_pgo.linux.arm64.checked.mch838,888+32
benchmarks.run_tiered.linux.arm64.checked.mch243,092+252
coreclr_tests.run.linux.arm64.checked.mch228,808-32
libraries.pmi.linux.arm64.checked.mch1,378,968+4,800
libraries_tests.run.linux.arm64.Release.mch484,200+1,884
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,206,352+3,256
realworld.run.linux.arm64.checked.mch1,987,368+4,312

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 83,914 contexts (36,117 MinOpts, 47,797 FullOpts).

MISSED contexts: base: 9 (0.01%), diff: 41,251 (32.04%)

Overall (+11,236 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,952+888
benchmarks.run_pgo.osx.arm64.checked.mch2,517,880+136
benchmarks.run_tiered.osx.arm64.checked.mch2,370,724-192
coreclr_tests.run.osx.arm64.checked.mch313,876+4
libraries.pmi.osx.arm64.checked.mch1,291,576+3,248
libraries_tests.run.osx.arm64.Release.mch1,161,284-60
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,968+4,688
MinOpts (-892 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,247,820-228
benchmarks.run_tiered.osx.arm64.checked.mch2,119,252-352
coreclr_tests.run.osx.arm64.checked.mch286,796-80
libraries_tests.run.osx.arm64.Release.mch1,080,672-232
FullOpts (+12,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,324,416+888
benchmarks.run_pgo.osx.arm64.checked.mch270,060+364
benchmarks.run_tiered.osx.arm64.checked.mch251,472+160
coreclr_tests.run.osx.arm64.checked.mch27,080+84
libraries.pmi.osx.arm64.checked.mch1,290,480+3,248
libraries_tests.run.osx.arm64.Release.mch80,612+172
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,152,092+2,524
realworld.run.osx.arm64.checked.mch1,916,868+4,688

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 87,579 contexts (27,614 MinOpts, 59,965 FullOpts).

MISSED contexts: base: 7 (0.00%), diff: 56,114 (38.00%)

Overall (+13,532 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,332+908
benchmarks.run_pgo.windows.arm64.checked.mch2,506,252-856
benchmarks.run_tiered.windows.arm64.checked.mch2,125,908+136
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch689,828+3,044
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,993,076+4,592
MinOpts (-496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,942,112-220
benchmarks.run_tiered.windows.arm64.checked.mch1,889,888-220
libraries_tests.run.windows.arm64.Release.mch397,544-56
FullOpts (+14,028 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch1,162,232+908
benchmarks.run_pgo.windows.arm64.checked.mch564,140-636
benchmarks.run_tiered.windows.arm64.checked.mch236,020+356
coreclr_tests.run.windows.arm64.checked.mch274,032+28
libraries.pmi.windows.arm64.checked.mch1,385,152+2,660
libraries_tests.run.windows.arm64.Release.mch292,284+3,100
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,207,948+3,020
realworld.run.windows.arm64.checked.mch1,992,976+4,592

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-0.50% to +0.12%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.50%
benchmarks.run_tiered.linux.arm64.checked.mch-0.04%
coreclr_tests.run.linux.arm64.checked.mch-0.02%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.12%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%
FullOpts (-0.58% to +0.23%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch+0.01%
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.09%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch+0.10%
libraries_tests.run.linux.arm64.Release.mch+0.23%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.06%
realworld.run.linux.arm64.checked.mch+0.10%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-0.49% to +0.70%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.49%
benchmarks.run_tiered.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch+0.70%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.15%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (0.00% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.02%
benchmarks.run_tiered.linux.x64.checked.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.04%
libraries_tests.run.linux.x64.Release.mch+0.07%
FullOpts (-0.56% to +0.91%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-0.07%
benchmarks.run_pgo.linux.x64.checked.mch-0.56%
benchmarks.run_tiered.linux.x64.checked.mch-0.06%
coreclr_tests.run.linux.x64.checked.mch+0.91%
libraries.pmi.linux.x64.checked.mch+0.10%
libraries_tests.run.linux.x64.Release.mch+0.18%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.20%
realworld.run.linux.x64.checked.mch+0.13%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-0.20% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.20%
benchmarks.run_tiered.osx.arm64.checked.mch-0.08%
coreclr_tests.run.osx.arm64.checked.mch-0.02%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.02%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%
MinOpts (-0.01% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch+0.01%
coreclr_tests.run.osx.arm64.checked.mch-0.01%
FullOpts (-0.29% to +0.09%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-0.01%
benchmarks.run_pgo.osx.arm64.checked.mch-0.29%
benchmarks.run_tiered.osx.arm64.checked.mch-0.22%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries.pmi.osx.arm64.checked.mch+0.07%
libraries_tests.run.osx.arm64.Release.mch+0.09%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch+0.06%
realworld.run.osx.arm64.checked.mch+0.09%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-0.80% to +0.62%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.80%
benchmarks.run_tiered.windows.arm64.checked.mch-0.06%
coreclr_tests.run.windows.arm64.checked.mch-0.02%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.62%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%
FullOpts (-0.99% to +0.83%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.99%
benchmarks.run_tiered.windows.arm64.checked.mch-0.15%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries.pmi.windows.arm64.checked.mch+0.09%
libraries_tests.run.windows.arm64.Release.mch+0.83%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch+0.06%
realworld.run.windows.arm64.checked.mch+0.09%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-2.25% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.53%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.27%
benchmarks.run_tiered.windows.x64.checked.mch-0.60%
coreclr_tests.run.windows.x64.checked.mch-1.59%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.99%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.25%
realworld.run.windows.x64.checked.mch-0.59%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.31%
benchmarks.run_pgo.windows.x64.checked.mch-1.07%
benchmarks.run_tiered.windows.x64.checked.mch-0.83%
coreclr_tests.run.windows.x64.checked.mch-5.16%
libraries_tests.run.windows.x64.Release.mch-1.38%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-2.22% to +0.38%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.36%
benchmarks.run.windows.x64.checked.mch-1.16%
benchmarks.run_pgo.windows.x64.checked.mch-0.11%
benchmarks.run_tiered.windows.x64.checked.mch-0.28%
coreclr_tests.run.windows.x64.checked.mch+0.38%
libraries.pmi.windows.x64.checked.mch-1.76%
libraries_tests.run.windows.x64.Release.mch-0.28%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.22%
realworld.run.windows.x64.checked.mch-0.60%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm64 ran on linux/x64

Overall (-0.19% to +0.18%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.14%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.19%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.10%
realworld.run.linux.arm64.checked.mch+0.13%
MinOpts (-0.00% to +1.09%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch+1.09%
benchmarks.run_tiered.linux.arm64.checked.mch+0.01%
FullOpts (-0.31% to +0.26%)
CollectionPDIFF
libraries_tests.run.linux.arm64.Release.mch+0.26%
libraries.pmi.linux.arm64.checked.mch+0.17%
benchmarks.run_pgo.linux.arm64.checked.mch-0.29%
coreclr_tests.run.linux.arm64.checked.mch-0.12%
benchmarks.run.linux.arm64.checked.mch-0.10%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch+0.18%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
benchmarks.run_tiered.linux.arm64.checked.mch-0.31%
realworld.run.linux.arm64.checked.mch+0.13%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-0.27% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.14%
libraries_tests.run.linux.x64.Release.mch+0.12%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.27%
benchmarks.run_tiered.linux.x64.checked.mch+0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%
MinOpts (0.00% to +0.09%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch+0.08%
libraries_tests.run.linux.x64.Release.mch+0.02%
coreclr_tests.run.linux.x64.checked.mch+0.09%
benchmarks.run_tiered.linux.x64.checked.mch+0.09%
FullOpts (-0.55% to +0.54%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.24%
libraries_tests.run.linux.x64.Release.mch+0.16%
benchmarks.run.linux.x64.checked.mch-0.14%
coreclr_tests.run.linux.x64.checked.mch-0.55%
benchmarks.run_tiered.linux.x64.checked.mch-0.04%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch+0.54%
libraries.pmi.linux.x64.checked.mch+0.36%
realworld.run.linux.x64.checked.mch+0.15%

Details here


Throughput diffs for linux/arm ran on windows/x86

Overall (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.05%
benchmarks.run_tiered.linux.arm.checked.mch+0.07%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%
MinOpts (-0.02% to +0.03%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch+0.03%
benchmarks.run_tiered.linux.arm.checked.mch+0.02%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries_tests.run.linux.arm.Release.mch-0.02%
FullOpts (-0.21% to +0.14%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch+0.08%
benchmarks.run_pgo.linux.arm.checked.mch-0.06%
benchmarks.run_tiered.linux.arm.checked.mch+0.12%
coreclr_tests.run.linux.arm.checked.mch+0.01%
libraries.pmi.linux.arm.checked.mch+0.13%
libraries_tests.run.linux.arm.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch+0.11%
realworld.run.linux.arm.checked.mch+0.14%

Throughput diffs for windows/x86 ran on windows/x86

Overall (-1.42% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.42%
benchmarks.run_tiered.windows.x86.checked.mch-0.14%
coreclr_tests.run.windows.x86.checked.mch-0.12%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.13%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%
MinOpts (-0.02% to +0.01%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch+0.01%
benchmarks.run_tiered.windows.x86.checked.mch+0.01%
coreclr_tests.run.windows.x86.checked.mch-0.02%
FullOpts (-1.78% to +0.13%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-0.11%
benchmarks.run_pgo.windows.x86.checked.mch-1.78%
benchmarks.run_tiered.windows.x86.checked.mch-0.26%
coreclr_tests.run.windows.x86.checked.mch-0.14%
libraries.pmi.windows.x86.checked.mch+0.13%
libraries_tests.run.windows.x86.Release.mch-0.21%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch+0.01%
realworld.run.windows.x86.checked.mch+0.07%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.17%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_tiered.linux.arm64.checked.mch-1.15%
benchmarks.run_pgo.linux.arm64.checked.mch-0.87%
libraries_tests.run.linux.arm64.Release.mch-1.61%
MinOpts (-52.67% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.arm64.checked.mch-52.67%
benchmarks.run_tiered.linux.arm64.checked.mch-1.24%
benchmarks.run_pgo.linux.arm64.checked.mch-0.90%
libraries_tests.run.linux.arm64.Release.mch-1.67%
FullOpts (-2.39% to -0.00%)
CollectionPDIFF
realworld.run.linux.arm64.checked.mch-1.21%
libraries.pmi.linux.arm64.checked.mch-0.56%
libraries.crossgen2.linux.arm64.checked.mch-0.01%
coreclr_tests.run.linux.arm64.checked.mch-2.39%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.08%
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
benchmarks.run_pgo.linux.arm64.checked.mch-0.85%
libraries_tests.run.linux.arm64.Release.mch-1.57%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.36%
libraries_tests.run.linux.x64.Release.mch-0.91%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.99%
benchmarks.run_tiered.linux.x64.checked.mch-0.62%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%
MinOpts (-1.42% to 0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.05%
libraries_tests.run.linux.x64.Release.mch-1.42%
benchmarks.run_pgo.linux.x64.checked.mch-1.29%
benchmarks.run_tiered.linux.x64.checked.mch-0.64%
FullOpts (-1.77% to +0.00%)
CollectionPDIFF
coreclr_tests.run.linux.x64.checked.mch-0.62%
libraries_tests.run.linux.x64.Release.mch-0.71%
libraries.pmi.linux.x64.checked.mch-1.77%
benchmarks.run_pgo.linux.x64.checked.mch-0.86%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
benchmarks.run.linux.x64.checked.mch-1.73%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.67%
realworld.run.linux.x64.checked.mch-1.54%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm ran on windows/x86

Diffs are based on 82,026 contexts (29,474 MinOpts, 52,552 FullOpts).

MISSED contexts: base: 2,213 (1.72%), diff: 43,415 (33.68%)

Overall (-49,260 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch507,536-2,486
benchmarks.run_pgo.linux.arm.checked.mch10,032,106-10,192
benchmarks.run_tiered.linux.arm.checked.mch1,668,128-10,252
coreclr_tests.run.linux.arm.checked.mch374,650-96
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch818,984-11,466
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch2,003,136-4,714
MinOpts (-15,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm.checked.mch3,909,502-6,314
benchmarks.run_tiered.linux.arm.checked.mch1,162,028-7,152
coreclr_tests.run.linux.arm.checked.mch273,420+40
libraries_tests.run.linux.arm.Release.mch246,528-2,318
FullOpts (-33,516 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm.checked.mch491,706-2,486
benchmarks.run_pgo.linux.arm.checked.mch6,122,604-3,878
benchmarks.run_tiered.linux.arm.checked.mch506,100-3,100
coreclr_tests.run.linux.arm.checked.mch101,230-136
libraries.pmi.linux.arm.checked.mch927,870-6,268
libraries_tests.run.linux.arm.Release.mch572,456-9,148
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch481,540-3,786
realworld.run.linux.arm.checked.mch1,998,620-4,714

Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 56,610 contexts (16,610 MinOpts, 40,000 FullOpts).

MISSED contexts: base: 1,422 (1.16%), diff: 62,829 (51.08%)

Overall (-49,481 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,269-2,988
benchmarks.run_pgo.windows.x86.checked.mch1,606,515-12,182
benchmarks.run_tiered.windows.x86.checked.mch688,652-9,512
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch377,767-9,057
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148
MinOpts (-24,699 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch610,624-9,271
benchmarks.run_tiered.windows.x86.checked.mch491,102-7,580
libraries_tests.run.windows.x86.Release.mch213,141-7,848
FullOpts (-24,782 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch294,196-2,988
benchmarks.run_pgo.windows.x86.checked.mch995,891-2,911
benchmarks.run_tiered.windows.x86.checked.mch197,550-1,932
coreclr_tests.run.windows.x86.checked.mch52,457-84
libraries.pmi.windows.x86.checked.mch1,544,756-5,699
libraries_tests.run.windows.x86.Release.mch164,626-1,209
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch293,271-3,811
realworld.run.windows.x86.checked.mch517,918-6,148

Details here


Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 91,015 contexts (37,196 MinOpts, 53,819 FullOpts).

MISSED contexts: base: 159 (0.11%), diff: 52,639 (35.66%)

Overall (-96,164 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,089,056-5,884
benchmarks.run_pgo.linux.arm64.checked.mch2,900,708-21,028
benchmarks.run_tiered.linux.arm64.checked.mch2,340,380-17,388
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch2,135,476-21,960
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,695,560-17,184
MinOpts (-46,440 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,064,608-16,472
benchmarks.run_tiered.linux.arm64.checked.mch2,103,408-15,924
libraries_tests.run.linux.arm64.Release.mch1,696,352-14,044
FullOpts (-49,724 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch1,044,220-5,884
benchmarks.run_pgo.linux.arm64.checked.mch836,100-4,556
benchmarks.run_tiered.linux.arm64.checked.mch236,972-1,464
coreclr_tests.run.linux.arm64.checked.mch164,096-48
libraries.pmi.linux.arm64.checked.mch1,285,304-5,688
libraries_tests.run.linux.arm64.Release.mch439,124-7,916
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch1,090,520-6,984
realworld.run.linux.arm64.checked.mch1,681,048-17,184

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 79,033 contexts (35,101 MinOpts, 43,932 FullOpts).

MISSED contexts: base: 44 (0.04%), diff: 37,673 (31.32%)

Overall (-81,444 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,644-6,084
benchmarks.run_pgo.osx.arm64.checked.mch2,510,584-18,724
benchmarks.run_tiered.osx.arm64.checked.mch2,279,232-17,048
coreclr_tests.run.osx.arm64.checked.mch312,480-176
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch1,052,488-10,708
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,100-17,336
MinOpts (-43,828 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,244,624-17,056
benchmarks.run_tiered.osx.arm64.checked.mch2,045,300-16,120
coreclr_tests.run.osx.arm64.checked.mch286,116-176
libraries_tests.run.osx.arm64.Release.mch981,904-10,476
FullOpts (-37,616 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,030,220-6,084
benchmarks.run_pgo.osx.arm64.checked.mch265,960-1,668
benchmarks.run_tiered.osx.arm64.checked.mch233,932-928
libraries.pmi.osx.arm64.checked.mch1,249,200-4,376
libraries_tests.run.osx.arm64.Release.mch70,584-232
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,037,508-6,992
realworld.run.osx.arm64.checked.mch1,692,000-17,336

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 80,760 contexts (27,005 MinOpts, 53,755 FullOpts).

MISSED contexts: base: 223 (0.17%), diff: 49,330 (36.80%)

Overall (-99,128 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,552-5,692
benchmarks.run_pgo.windows.arm64.checked.mch2,407,116-20,412
benchmarks.run_tiered.windows.arm64.checked.mch2,106,448-17,624
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch615,412-20,616
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,344-17,092
MinOpts (-40,184 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,882,192-16,236
benchmarks.run_tiered.windows.arm64.checked.mch1,874,596-15,612
libraries_tests.run.windows.arm64.Release.mch397,116-8,336
FullOpts (-58,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch931,452-5,692
benchmarks.run_pgo.windows.arm64.checked.mch524,924-4,176
benchmarks.run_tiered.windows.arm64.checked.mch231,852-2,012
coreclr_tests.run.windows.arm64.checked.mch171,896-176
libraries.pmi.windows.arm64.checked.mch1,252,856-10,348
libraries_tests.run.windows.arm64.Release.mch218,296-12,280
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,045,188-7,168
realworld.run.windows.arm64.checked.mch1,675,244-17,092

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 79,883 contexts (35,475 MinOpts, 44,408 FullOpts).

MISSED contexts: base: 47 (0.04%), diff: 46,452 (35.54%)

Overall (-93,689 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch933,140-3,514
benchmarks.run.windows.x64.checked.mch638,956-3,579
benchmarks.run_pgo.windows.x64.checked.mch1,821,224-14,091
benchmarks.run_tiered.windows.x64.checked.mch1,565,006-14,674
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch1,095,020-17,843
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360
MinOpts (-46,375 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,790-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,304,129-13,077
benchmarks.run_tiered.windows.x64.checked.mch1,425,424-14,093
libraries_tests.run.windows.x64.Release.mch833,618-15,368
FullOpts (-47,314 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch366,350+323
benchmarks.run.windows.x64.checked.mch638,882-3,579
benchmarks.run_pgo.windows.x64.checked.mch517,095-1,014
benchmarks.run_tiered.windows.x64.checked.mch139,582-581
coreclr_tests.run.windows.x64.checked.mch105,015+31
libraries.pmi.windows.x64.checked.mch693,716-17,504
libraries_tests.run.windows.x64.Release.mch261,402-2,475
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch838,544-6,155
realworld.run.windows.x64.checked.mch1,799,819-16,360

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-2.04% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.38%
benchmarks.run_pgo.linux.arm64.checked.mch-0.91%
benchmarks.run_tiered.linux.arm64.checked.mch-0.67%
coreclr_tests.run.linux.arm64.checked.mch-0.22%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-1.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-0.98%
MinOpts (-0.61% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.58%
benchmarks.run_tiered.linux.arm64.checked.mch-0.61%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.60%
FullOpts (-2.13% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.40%
benchmarks.run_pgo.linux.arm64.checked.mch-0.96%
benchmarks.run_tiered.linux.arm64.checked.mch-0.77%
coreclr_tests.run.linux.arm64.checked.mch-0.37%
libraries.crossgen2.linux.arm64.checked.mch-0.20%
libraries.pmi.linux.arm64.checked.mch-1.53%
libraries_tests.run.linux.arm64.Release.mch-2.13%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.04%
realworld.run.linux.arm64.checked.mch-1.00%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-1.82% to +0.35%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.41%
benchmarks.run_pgo.linux.x64.checked.mch-0.87%
benchmarks.run_tiered.linux.x64.checked.mch-0.65%
coreclr_tests.run.linux.x64.checked.mch+0.35%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.56%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.93%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.66% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.63%
benchmarks.run_tiered.linux.x64.checked.mch-0.58%
coreclr_tests.run.linux.x64.checked.mch-0.03%
libraries_tests.run.linux.x64.Release.mch-0.66%
FullOpts (-1.82% to +0.47%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.45%
benchmarks.run_pgo.linux.x64.checked.mch-0.91%
benchmarks.run_tiered.linux.x64.checked.mch-0.78%
coreclr_tests.run.linux.x64.checked.mch+0.47%
libraries.pmi.linux.x64.checked.mch-0.90%
libraries_tests.run.linux.x64.Release.mch-0.52%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.82%
realworld.run.linux.x64.checked.mch-0.94%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-2.02% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.18%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-0.73%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.02%
realworld.run.osx.arm64.checked.mch-1.00%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.50%
FullOpts (-2.03% to -0.00%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.46%
benchmarks.run_pgo.osx.arm64.checked.mch-0.96%
benchmarks.run_tiered.osx.arm64.checked.mch-1.81%
coreclr_tests.run.osx.arm64.checked.mch-0.38%
libraries.pmi.osx.arm64.checked.mch-1.54%
libraries_tests.run.osx.arm64.Release.mch-1.66%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-2.03%
realworld.run.osx.arm64.checked.mch-1.02%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-4.57% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.37%
benchmarks.run_tiered.windows.arm64.checked.mch-1.10%
coreclr_tests.run.windows.arm64.checked.mch-0.26%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-4.57%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.11%
realworld.run.windows.arm64.checked.mch-1.02%
MinOpts (-2.46% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.81%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.04%
libraries_tests.run.windows.arm64.Release.mch-2.46%
FullOpts (-5.26% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.48%
benchmarks.run_pgo.windows.arm64.checked.mch-1.51%
benchmarks.run_tiered.windows.arm64.checked.mch-1.52%
coreclr_tests.run.windows.arm64.checked.mch-0.44%
libraries.pmi.windows.arm64.checked.mch-1.54%
libraries_tests.run.windows.arm64.Release.mch-5.26%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-2.12%
realworld.run.windows.arm64.checked.mch-1.04%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.22% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.14%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.71%
benchmarks.run_tiered.windows.x64.checked.mch-1.56%
coreclr_tests.run.windows.x64.checked.mch-1.98%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.88%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.22%
realworld.run.windows.x64.checked.mch-1.66%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%
MinOpts (-13.96% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.07%
benchmarks.run_pgo.windows.x64.checked.mch-2.04%
benchmarks.run_tiered.windows.x64.checked.mch-1.77%
coreclr_tests.run.windows.x64.checked.mch-5.32%
libraries_tests.run.windows.x64.Release.mch-1.84%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.96%
FullOpts (-4.20% to +0.00%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.15%
benchmarks.run.windows.x64.checked.mch-2.47%
benchmarks.run_pgo.windows.x64.checked.mch-0.45%
benchmarks.run_tiered.windows.x64.checked.mch-1.27%
coreclr_tests.run.windows.x64.checked.mch-0.14%
libraries.pmi.windows.x64.checked.mch-3.66%
libraries_tests.run.windows.x64.Release.mch-1.95%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-4.20%
realworld.run.windows.x64.checked.mch-1.68%
smoke_tests.nativeaot.windows.x64.checked.mch-2.15%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.29% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-3.94%
benchmarks.run_pgo.linux.arm.checked.mch-0.13%
benchmarks.run_tiered.linux.arm.checked.mch-1.32%
coreclr_tests.run.linux.arm.checked.mch-0.49%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.87%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.29%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-1.65% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.29%
benchmarks.run_tiered.linux.arm.checked.mch-0.46%
coreclr_tests.run.linux.arm.checked.mch-0.02%
libraries_tests.run.linux.arm.Release.mch-1.65%
FullOpts (-4.30% to +0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.10%
benchmarks.run_pgo.linux.arm.checked.mch-0.11%
benchmarks.run_tiered.linux.arm.checked.mch-2.01%
coreclr_tests.run.linux.arm.checked.mch-1.21%
libraries.pmi.linux.arm.checked.mch-1.74%
libraries_tests.run.linux.arm.Release.mch-2.92%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-4.30%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for windows/x86 ran on windows/x86

Overall (-2.30% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-1.90%
benchmarks.run_tiered.windows.x86.checked.mch-1.18%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.86%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.13%
MinOpts (-1.18% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.18%
benchmarks.run_tiered.windows.x86.checked.mch-1.06%
coreclr_tests.run.windows.x86.checked.mch-0.15%
libraries_tests.run.windows.x86.Release.mch-0.87%
FullOpts (-2.31% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.29%
benchmarks.run_pgo.windows.x86.checked.mch-2.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.28%
coreclr_tests.run.windows.x86.checked.mch-0.53%
libraries.pmi.windows.x86.checked.mch-1.66%
libraries_tests.run.windows.x86.Release.mch-0.85%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.31%
realworld.run.windows.x86.checked.mch-1.15%

Details here


@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8e3191f to 488d306CompareFebruary 13, 2024 00:15
@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.09%
libraries_tests.run.linux.arm64.Release.mch-1.92%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-1.34%
benchmarks.run_tiered.linux.arm64.checked.mch-0.96%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%
MinOpts (-1.88% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.95%
libraries_tests.run.linux.arm64.Release.mch-1.88%
coreclr_tests.run.linux.arm64.checked.mch-0.09%
benchmarks.run_tiered.linux.arm64.checked.mch-0.82%
FullOpts (-2.89% to -0.00%)
CollectionPDIFF
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-2.89%
benchmarks.run_pgo.linux.arm64.checked.mch-1.20%
libraries_tests.run.linux.arm64.Release.mch-2.09%
realworld.run.linux.arm64.checked.mch-1.58%
libraries.pmi.linux.arm64.checked.mch-0.57%
coreclr_tests.run.linux.arm64.checked.mch-2.13%
benchmarks.run_tiered.linux.arm64.checked.mch-1.28%
smoke_tests.nativeaot.linux.arm64.checked.mch-0.01%
benchmarks.run.linux.arm64.checked.mch-1.20%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
libraries_tests.run.linux.x64.Release.mch-2.22%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
benchmarks.run.linux.x64.checked.mch-0.03%
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
libraries_tests.run.linux.x64.Release.mch-2.34%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
benchmarks.run.linux.x64.checked.mch-1.60%
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
libraries_tests.run.linux.x64.Release.mch-1.84%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/arm64 ran on windows/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for osx/arm64 ran on windows/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to 0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on windows/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Assembly diffs

Assembly diffs for linux/arm64 ran on windows/x64

Diffs are based on 90,968 contexts (39,217 MinOpts, 51,751 FullOpts).

MISSED contexts: base: 3,450 (2.42%), diff: 47,377 (33.29%)

Overall (-92,984 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,856-5,876
benchmarks.run_pgo.linux.arm64.checked.mch2,956,824-20,412
benchmarks.run_tiered.linux.arm64.checked.mch2,289,652-17,264
coreclr_tests.run.linux.arm64.checked.mch535,608-288
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch1,695,136-17,860
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,677,192-17,112
MinOpts (-48,108 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.arm64.checked.mch2,119,436-15,648
benchmarks.run_tiered.linux.arm64.checked.mch2,047,816-15,788
coreclr_tests.run.linux.arm64.checked.mch397,428-140
libraries_tests.run.linux.arm64.Release.mch1,599,544-16,532
FullOpts (-44,876 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.arm64.checked.mch987,432-5,876
benchmarks.run_pgo.linux.arm64.checked.mch837,388-4,764
benchmarks.run_tiered.linux.arm64.checked.mch241,836-1,476
coreclr_tests.run.linux.arm64.checked.mch138,180-148
libraries.pmi.linux.arm64.checked.mch1,340,444-6,676
libraries_tests.run.linux.arm64.Release.mch95,592-1,328
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch985,512-7,496
realworld.run.linux.arm64.checked.mch1,664,872-17,112

Assembly diffs for linux/x64 ran on windows/x64

Diffs are based on 92,598 contexts (38,516 MinOpts, 54,082 FullOpts).

MISSED contexts: base: 3,640 (2.59%), diff: 43,898 (31.25%)

Overall (-96,473 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch721,868-4,586
benchmarks.run_pgo.linux.x64.checked.mch2,059,337-15,319
benchmarks.run_tiered.linux.x64.checked.mch2,163,412-15,133
coreclr_tests.run.linux.x64.checked.mch407,681+64
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch1,447,569-21,187
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,403,564-13,465
MinOpts (-46,977 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.linux.x64.checked.mch1,526,742-13,499
benchmarks.run_tiered.linux.x64.checked.mch1,965,819-14,023
coreclr_tests.run.linux.x64.checked.mch303,333-6
libraries_tests.run.linux.x64.Release.mch1,348,426-19,449
FullOpts (-49,496 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.linux.x64.checked.mch704,368-4,586
benchmarks.run_pgo.linux.x64.checked.mch532,595-1,820
benchmarks.run_tiered.linux.x64.checked.mch197,593-1,110
coreclr_tests.run.linux.x64.checked.mch104,348+70
libraries.pmi.linux.x64.checked.mch737,374-20,077
libraries_tests.run.linux.x64.Release.mch99,143-1,738
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch830,863-6,770
realworld.run.linux.x64.checked.mch1,401,962-13,465

Assembly diffs for osx/arm64 ran on windows/x64

Diffs are based on 78,929 contexts (41,462 MinOpts, 37,467 FullOpts).

MISSED contexts: base: 2,856 (2.27%), diff: 43,225 (34.38%)

Overall (-92,764 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,784-5,840
benchmarks.run_pgo.osx.arm64.checked.mch2,496,932-18,464
benchmarks.run_tiered.osx.arm64.checked.mch2,306,432-17,176
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch2,206,820-22,728
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,176-17,236
MinOpts (-55,640 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.osx.arm64.checked.mch2,239,532-16,808
benchmarks.run_tiered.osx.arm64.checked.mch2,102,732-16,288
libraries_tests.run.osx.arm64.Release.mch2,194,452-22,544
FullOpts (-37,124 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.osx.arm64.checked.mch1,051,360-5,840
benchmarks.run_pgo.osx.arm64.checked.mch257,400-1,656
benchmarks.run_tiered.osx.arm64.checked.mch203,700-888
coreclr_tests.run.osx.arm64.checked.mch188,056-112
libraries.pmi.osx.arm64.checked.mch1,221,828-4,004
libraries_tests.run.osx.arm64.Release.mch12,368-184
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch1,036,932-7,204
realworld.run.osx.arm64.checked.mch1,633,076-17,236

Assembly diffs for windows/arm64 ran on windows/x64

Diffs are based on 89,877 contexts (39,512 MinOpts, 50,365 FullOpts).

MISSED contexts: base: 3,991 (2.85%), diff: 46,273 (33.03%)

Overall (-90,944 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,828-5,476
benchmarks.run_pgo.windows.arm64.checked.mch2,287,604-19,696
benchmarks.run_tiered.windows.arm64.checked.mch2,227,248-17,092
coreclr_tests.run.windows.arm64.checked.mch561,672-612
libraries.pmi.windows.arm64.checked.mch1,150,104-732
libraries_tests.run.windows.arm64.Release.mch2,258,308-22,440
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,480-17,164
MinOpts (-53,200 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.arm64.checked.mch1,817,936-15,984
benchmarks.run_tiered.windows.arm64.checked.mch2,005,868-15,300
coreclr_tests.run.windows.arm64.checked.mch388,052-172
libraries_tests.run.windows.arm64.Release.mch2,220,016-21,744
FullOpts (-37,744 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.arm64.checked.mch850,452-5,476
benchmarks.run_pgo.windows.arm64.checked.mch469,668-3,712
benchmarks.run_tiered.windows.arm64.checked.mch221,380-1,792
coreclr_tests.run.windows.arm64.checked.mch173,620-440
libraries.pmi.windows.arm64.checked.mch1,150,032-732
libraries_tests.run.windows.arm64.Release.mch38,292-696
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch1,051,504-7,732
realworld.run.windows.arm64.checked.mch1,662,380-17,164

Assembly diffs for windows/x64 ran on windows/x64

Diffs are based on 93,749 contexts (40,209 MinOpts, 53,540 FullOpts).

MISSED contexts: base: 3,301 (2.30%), diff: 45,642 (31.75%)

Overall (-98,879 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch918,586-3,514
benchmarks.run.windows.x64.checked.mch637,100-4,369
benchmarks.run_pgo.windows.x64.checked.mch1,575,206-12,251
benchmarks.run_tiered.windows.x64.checked.mch1,518,103-14,901
coreclr_tests.run.windows.x64.checked.mch379,814+12
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch1,540,227-23,414
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779
MinOpts (-51,463 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch566,802-3,837
benchmarks.run_pgo.windows.x64.checked.mch1,172,226-11,291
benchmarks.run_tiered.windows.x64.checked.mch1,333,260-13,988
coreclr_tests.run.windows.x64.checked.mch289,459+114
libraries_tests.run.windows.x64.Release.mch1,489,732-22,461
FullOpts (-47,416 bytes)
CollectionBase size (bytes)Diff size (bytes)
aspnet.run.windows.x64.checked.mch351,784+323
benchmarks.run.windows.x64.checked.mch636,868-4,369
benchmarks.run_pgo.windows.x64.checked.mch402,980-960
benchmarks.run_tiered.windows.x64.checked.mch184,843-913
coreclr_tests.run.windows.x64.checked.mch90,355-102
libraries.pmi.windows.x64.checked.mch837,452-17,566
libraries_tests.run.windows.x64.Release.mch50,495-953
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch745,455-8,097
realworld.run.windows.x64.checked.mch1,799,593-14,779

Details here


Assembly diffs for windows/x86 ran on windows/x86

Diffs are based on 53,492 contexts (17,492 MinOpts, 36,000 FullOpts).

MISSED contexts: base: 3,510 (3.05%), diff: 58,094 (50.45%)

Overall (-52,308 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch298,081-3,108
benchmarks.run_pgo.windows.x86.checked.mch726,262-8,964
benchmarks.run_tiered.windows.x86.checked.mch706,843-9,977
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch510,379-15,767
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649
MinOpts (-27,508 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run_pgo.windows.x86.checked.mch414,129-6,800
benchmarks.run_tiered.windows.x86.checked.mch520,835-7,704
libraries_tests.run.windows.x86.Release.mch413,867-13,004
FullOpts (-24,800 bytes)
CollectionBase size (bytes)Diff size (bytes)
benchmarks.run.windows.x86.checked.mch297,884-3,108
benchmarks.run_pgo.windows.x86.checked.mch312,133-2,164
benchmarks.run_tiered.windows.x86.checked.mch186,008-2,273
coreclr_tests.run.windows.x86.checked.mch46,161-42
libraries.pmi.windows.x86.checked.mch1,461,078-3,494
libraries_tests.run.windows.x86.Release.mch96,512-2,763
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch256,268-5,307
realworld.run.windows.x86.checked.mch481,011-5,649

Details here


Throughput diffs

Throughput diffs for linux/arm64 ran on linux/x64

Overall (-9.63% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.16%
benchmarks.run_pgo.linux.arm64.checked.mch-1.27%
benchmarks.run_tiered.linux.arm64.checked.mch-0.60%
coreclr_tests.run.linux.arm64.checked.mch-0.29%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-9.63%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.58%
realworld.run.linux.arm64.checked.mch-0.93%
MinOpts (-0.63% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm64.checked.mch-0.63%
benchmarks.run_tiered.linux.arm64.checked.mch-0.53%
coreclr_tests.run.linux.arm64.checked.mch-0.03%
libraries_tests.run.linux.arm64.Release.mch-0.51%
FullOpts (-14.40% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm64.checked.mch-1.22%
benchmarks.run_pgo.linux.arm64.checked.mch-1.36%
benchmarks.run_tiered.linux.arm64.checked.mch-0.70%
coreclr_tests.run.linux.arm64.checked.mch-0.71%
libraries.pmi.linux.arm64.checked.mch-1.48%
libraries_tests.run.linux.arm64.Release.mch-14.40%
libraries_tests_no_tiered_compilation.run.linux.arm64.Release.mch-1.59%
realworld.run.linux.arm64.checked.mch-0.95%

Throughput diffs for linux/x64 ran on linux/x64

Overall (-2.22% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.12%
benchmarks.run_pgo.linux.x64.checked.mch-1.18%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-2.22%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-0.98%
realworld.run.linux.x64.checked.mch-1.52%
MinOpts (-2.34% to 0.00%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-1.48%
benchmarks.run_pgo.linux.x64.checked.mch-1.37%
libraries_tests.run.linux.x64.Release.mch-2.34%
benchmarks.run.linux.x64.checked.mch-0.03%
coreclr_tests.run.linux.x64.checked.mch-0.03%
realworld.run.linux.x64.checked.mch-0.02%
FullOpts (-1.84% to -0.01%)
CollectionPDIFF
benchmarks.run_tiered.linux.x64.checked.mch-0.63%
benchmarks.run_pgo.linux.x64.checked.mch-1.01%
libraries.pmi.linux.x64.checked.mch-1.61%
libraries.crossgen2.linux.x64.checked.mch-0.01%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.50%
libraries_tests.run.linux.x64.Release.mch-1.84%
benchmarks.run.linux.x64.checked.mch-1.60%
smoke_tests.nativeaot.linux.x64.checked.mch-0.01%
coreclr_tests.run.linux.x64.checked.mch-1.34%
realworld.run.linux.x64.checked.mch-1.52%

Throughput diffs for osx/arm64 ran on linux/x64

Overall (-6.05% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.87%
benchmarks.run_tiered.osx.arm64.checked.mch-1.20%
coreclr_tests.run.osx.arm64.checked.mch-0.29%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-6.05%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.59%
realworld.run.osx.arm64.checked.mch-0.98%
MinOpts (-0.79% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.osx.arm64.checked.mch-0.79%
benchmarks.run_tiered.osx.arm64.checked.mch-0.78%
coreclr_tests.run.osx.arm64.checked.mch-0.03%
libraries_tests.run.osx.arm64.Release.mch-0.51%
FullOpts (-10.53% to -0.20%)
CollectionPDIFF
benchmarks.run.osx.arm64.checked.mch-1.36%
benchmarks.run_pgo.osx.arm64.checked.mch-0.91%
benchmarks.run_tiered.osx.arm64.checked.mch-1.86%
coreclr_tests.run.osx.arm64.checked.mch-0.73%
libraries.crossgen2.osx.arm64.checked.mch-0.20%
libraries.pmi.osx.arm64.checked.mch-1.51%
libraries_tests.run.osx.arm64.Release.mch-10.53%
libraries_tests_no_tiered_compilation.run.osx.arm64.Release.mch-1.60%
realworld.run.osx.arm64.checked.mch-1.00%

Throughput diffs for windows/arm64 ran on linux/x64

Overall (-3.07% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.73%
benchmarks.run_tiered.windows.arm64.checked.mch-1.18%
coreclr_tests.run.windows.arm64.checked.mch-0.22%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-3.07%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.97%
MinOpts (-0.83% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.arm64.checked.mch-0.83%
benchmarks.run_tiered.windows.arm64.checked.mch-0.79%
coreclr_tests.run.windows.arm64.checked.mch-0.03%
libraries_tests.run.windows.arm64.Release.mch-0.48%
FullOpts (-5.35% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.arm64.checked.mch-1.38%
benchmarks.run_pgo.windows.arm64.checked.mch-1.93%
benchmarks.run_tiered.windows.arm64.checked.mch-1.70%
coreclr_tests.run.windows.arm64.checked.mch-0.53%
libraries.pmi.windows.arm64.checked.mch-1.49%
libraries_tests.run.windows.arm64.Release.mch-5.35%
libraries_tests_no_tiered_compilation.run.windows.arm64.Release.mch-1.58%
realworld.run.windows.arm64.checked.mch-0.99%

Details here


Throughput diffs for windows/x86 ran on linux/x86

Overall (-2.29% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.09%
benchmarks.run_tiered.windows.x86.checked.mch-1.22%
coreclr_tests.run.windows.x86.checked.mch-0.46%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-1.78%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.29%
realworld.run.windows.x86.checked.mch-1.12%
MinOpts (-1.11% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.windows.x86.checked.mch-1.08%
benchmarks.run_tiered.windows.x86.checked.mch-1.11%
coreclr_tests.run.windows.x86.checked.mch-0.17%
libraries_tests.run.windows.x86.Release.mch-0.62%
FullOpts (-2.60% to -0.00%)
CollectionPDIFF
benchmarks.run.windows.x86.checked.mch-1.30%
benchmarks.run_pgo.windows.x86.checked.mch-2.27%
benchmarks.run_tiered.windows.x86.checked.mch-1.31%
coreclr_tests.run.windows.x86.checked.mch-0.58%
libraries.pmi.windows.x86.checked.mch-1.73%
libraries_tests.run.windows.x86.Release.mch-2.60%
libraries_tests_no_tiered_compilation.run.windows.x86.Release.mch-2.30%
realworld.run.windows.x86.checked.mch-1.14%

Details here


@ryujit-bot

Copy link
Copy Markdown
Diff results for #97529

Throughput diffs

Throughput diffs for linux/x64 ran on windows/x64

Overall (-9.59% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.18%
benchmarks.run_pgo.linux.x64.checked.mch-1.14%
benchmarks.run_tiered.linux.x64.checked.mch-0.61%
coreclr_tests.run.linux.x64.checked.mch-0.02%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-9.59%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.42%
realworld.run.linux.x64.checked.mch-0.88%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%
MinOpts (-0.56% to +0.07%)
CollectionPDIFF
benchmarks.run_pgo.linux.x64.checked.mch-0.54%
benchmarks.run_tiered.linux.x64.checked.mch-0.52%
coreclr_tests.run.linux.x64.checked.mch+0.07%
libraries_tests.run.linux.x64.Release.mch-0.56%
FullOpts (-13.41% to +0.01%)
CollectionPDIFF
benchmarks.run.linux.x64.checked.mch-1.22%
benchmarks.run_pgo.linux.x64.checked.mch-1.22%
benchmarks.run_tiered.linux.x64.checked.mch-0.74%
coreclr_tests.run.linux.x64.checked.mch-0.08%
libraries.pmi.linux.x64.checked.mch-0.85%
libraries_tests.run.linux.x64.Release.mch-13.41%
libraries_tests_no_tiered_compilation.run.linux.x64.Release.mch-1.43%
realworld.run.linux.x64.checked.mch-0.90%
smoke_tests.nativeaot.linux.x64.checked.mch+0.01%

Throughput diffs for windows/x64 ran on windows/x64

Overall (-4.31% to -0.52%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-1.11%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.48%
coreclr_tests.run.windows.x64.checked.mch-2.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-4.31%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.49%
realworld.run.windows.x64.checked.mch-1.00%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%
MinOpts (-13.95% to +0.01%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-2.06%
benchmarks.run.windows.x64.checked.mch+0.01%
benchmarks.run_pgo.windows.x64.checked.mch-1.91%
benchmarks.run_tiered.windows.x64.checked.mch-1.73%
coreclr_tests.run.windows.x64.checked.mch-5.25%
libraries.crossgen2.windows.x64.checked.mch+0.01%
libraries.pmi.windows.x64.checked.mch+0.01%
libraries_tests.run.windows.x64.Release.mch-2.36%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-13.95%
realworld.run.windows.x64.checked.mch+0.01%
smoke_tests.nativeaot.windows.x64.checked.mch+0.01%
FullOpts (-5.73% to -0.20%)
CollectionPDIFF
aspnet.run.windows.x64.checked.mch-0.91%
benchmarks.run.windows.x64.checked.mch-1.46%
benchmarks.run_pgo.windows.x64.checked.mch-0.74%
benchmarks.run_tiered.windows.x64.checked.mch-1.14%
coreclr_tests.run.windows.x64.checked.mch-0.20%
libraries.crossgen2.windows.x64.checked.mch-0.52%
libraries.pmi.windows.x64.checked.mch-2.41%
libraries_tests.run.windows.x64.Release.mch-5.73%
libraries_tests_no_tiered_compilation.run.windows.x64.Release.mch-2.46%
realworld.run.windows.x64.checked.mch-1.02%
smoke_tests.nativeaot.windows.x64.checked.mch-1.50%

Details here


Throughput diffs for linux/arm ran on linux/x86

Overall (-4.71% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.14%
benchmarks.run_pgo.linux.arm.checked.mch-3.00%
benchmarks.run_tiered.linux.arm.checked.mch-1.21%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-4.71%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.50%
MinOpts (-0.69% to +0.00%)
CollectionPDIFF
benchmarks.run_pgo.linux.arm.checked.mch-0.53%
benchmarks.run_tiered.linux.arm.checked.mch-0.39%
libraries_tests.run.linux.arm.Release.mch-0.69%
FullOpts (-6.56% to -0.00%)
CollectionPDIFF
benchmarks.run.linux.arm.checked.mch-4.34%
benchmarks.run_pgo.linux.arm.checked.mch-3.35%
benchmarks.run_tiered.linux.arm.checked.mch-1.95%
coreclr_tests.run.linux.arm.checked.mch-3.75%
libraries.pmi.linux.arm.checked.mch-1.63%
libraries_tests.run.linux.arm.Release.mch-6.56%
libraries_tests_no_tiered_compilation.run.linux.arm.Release.mch-3.34%
realworld.run.linux.arm.checked.mch-2.53%

Details here


@khushal1996

Copy link
Copy Markdown
MemberAuthor

tracking #40234 for dotnet/doc breaking change documentation.

@khushal1996

Copy link
Copy Markdown
MemberAuthor

@tannergooding
can you help review the new changes? The review from our offline discussion is already incorporated here. Let me know if anything else is needed before we merge.

Comment threadsrc/coreclr/jit/assertionprop.cpp Outdated
Comment threadsrc/coreclr/jit/gentree.h Outdated

@tannergoodingtannergooding left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM, minus a couple bits of code I think can be removed now.

I do think there are some more optimization opportunities available, but we can handle those in a follow up PR.

CC. @dotnet/jit-contrib for secondary sign-off

@khushal1996
khushal1996force-pushed the kcm-scalar-convert-rebased branch from 8ad1be3 to c4f28c7CompareApril 4, 2024 18:23
// i) GT_CAST(float/double, int type with overflow detection)
//
void Lowering::LowerCast(GenTree* tree)
GenTree* Lowering::LowerCast(GenTree* tree)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can you add the comment about return value in summary docs?

break;
{
GenTree* nextNode = LowerCast(node);
if (nextNode != nullptr)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

can we #ifdef TARGET_XARCH here to check the nextNode != nullptr?

@jakobbotschjakobbotschApr 5, 2024

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

IMO such micro optimizations should be left up to the compiler. This just adds a potential point of confusion/source of bugs if someone ever modifies an architecture specific LowerCast outside xarch.

@BruceForstallBruceForstall left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I don't have any comments beyond those already written.

@tannergooding
tannergooding merged commit 1a7904e into dotnet:mainApr 5, 2024
@jakobbotsch

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?
image

@tannergooding

Copy link
Copy Markdown
Member

Just curious, is this PR a bug fix to the behavior? Is it expected for this to primarily result in code size/perfscore regressions?

Yes.

The general summary is that floating-point to integer conversions have implementation-defined behavior (per both the IEEE 754 and .NET runtime specifications) when a floating-point value has a greater magnitude than the maximum or minimum value of the target integer type. Historically x86/x64 architectures have returned a sentinel value for these cases, while newer platforms such as Arm64 and WASM have opted to saturate instead.

.NET is opting to start standardizing this behavior across platforms and make it consistent by performing saturating conversions everywhere. This saturating behavior more closely mirrors the typical IEEE 754 floating-point rules around other operations, which is that operations are done as if to infinite precision and unbounded range, then rounded to the nearest representable result. It also then mirrors similar decisions for deterministic behavior made by other languages/ecosystems including Rust, Java, etc.

Compatibility APIs (as detailed in #61885) are being added in a follow up PR for cases where the platform-specific behavior is desired. This is primarily provided for cases where a developer wants the most performance and doesn’t mind getting different results between x64 and Arm64 machines or between an x64 machine that supports AVX2 (~2013 or later) and an x64 machine that supports AVX512 (~2017 or later).

@BruceForstall

Copy link
Copy Markdown
Contributor

Thanks @khushal1996 for the contribution, and for persisting through a long review process!

@khushal1996

Copy link
Copy Markdown
MemberAuthor

Thanks @BruceForstall@tannergooding@jkotas for the review.

jkotas added a commit that referenced this pull request Apr 6, 2024
* Saturating floating point to integer conversions on Arm32
Follow up on #97529 (comment)
* Fixes, cleanup
@tannergooding

Copy link
Copy Markdown
Member

Just noting per the above that the regressions are expected. We do want to track them and see if we can minimize the cost further where possible (I had a few ideas to improve the codegen and will take a look at it more deeply).

The regressions here are also basically "worst case" scenarios, as they are namely the ones primarily testing floating-point to integer conversion perf.

matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
* merging with main
Initial changes for scalar conversion double -> ulong
* Basic working version of double -> ulong saturation
* Moving the code in a do-while with proper checks to amke sure we are adding the fixup node at all cases
* adjusting comments
* Merging with main
Saturating NaN to 0 and also adding Dbl2Ulng implementation in MathHelpers. Adding vector conversion support for double /float -> ulong conversion
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* float to uint conversion verified. removing commented code
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* progress on double to long morphing
* another attempt at double to long conversion
* Merge with main
Merge with main
adding a new helper function ofr float to uint scalar conversion for SSE2.
* adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* adding float to int working scalar conversion case. Working on vectro case here on.
* partial work on float to int packed conversion
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* complete conversions code for floating point to integral conversions for scalar/packed for SSE / avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* accomodate unsigned in IR
* adding evex support for cvttss2si
* Mergw with main
defining nativeaot helpers for x86
* Catch divide by zero exception
* Handle overflow cases
* Fix tests to check saturating behavior
* Correct mapping of instructions
* Convert float -> ulong / long as float -> double -> ulong / long
* Merging with main
Initial changes for scalar conversion double -> ulong
* Merging with main
adjusting comments
* removing conflicts from gentree.h flags
merging with main
doubel to uint conversion
* merging with main. Making changes to simdashwintrinsic.cpp and
listxarch.h
float -> uint packed conversion
* adding a new helper function ofr float to uint scalar conversion for SSE2.
* Merging with main
adding handling for scalar conversion cases for SSE2. Remaining float/double -> long/int for AVX512.
* partial changes for float to int conversion using double to int for avx512. vfixup not working. next step is to fix the vfixup instruction and get it working
* partial version of float to int conversion
* working version of float to int scalar/packed for avx512
* Merging with main.
fixing out of range test case adn adding conversion changes to simdashwintrinsic
* Changing the way helper functions are handled in morph
fixing debug checks hitting asserts for TYP_ULONG and TYP_UINT at IR level
* adding JIT_Dbl2Int for target_x86 and other architectures.
* Supporting x86 for saturating conversions as well
* fixing errors in packed conversion
* Correct mapping of instructions
* delete extra files
* Merging main
review changes
* Merge with main and adding new helpers in nativeaot
Rebasing with main
* changing type of cast node as signed when making cast nodes
* Avoiding removing extra element from the stack
* Fix formatting, Change comp->IsaSupportedDebugOnly to IsBaselineVector512SupportedDebugOnly
* Reverting some changes to maintain uniformity in code
* Handling cases where AVX512 is not supported in simdashwintrinsic.cpp
* fixing exit conditions for ConvertVectorT_ToDouble
* Check for AVX512 support for TARGET_XARCH
* Avoid avx512 path for x86
* Enable AVX512F codepath for conversions in x86 arch. Move x86 to using c++ helpers
* Add SSE41 path for scalar conversions and 128 bit float to int packed conversions
* Adding SSE41 path for floating point to UINT scalar conversions
* Add AVX path for ConvertToInt32
* Adding comments and cleaning the code
* Fix errors in double to ulong
* Addressing review comments
* Fix tests
* Reverse val < 0 check in dbltoUint and dbltoUlng helpers
* Add overflow conversions for 86/x64, remove FastDbl2Lng and inline it
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Correct Dbl2UlngOvf
* Apply suggestions from code review
* Apply suggestions from code review
* Update src/coreclr/vm/jithelpers.cpp
* Disable failing mono tests
* Working version of saturating logic moved to lowering for x86/x64
* Making changes for pre SSE41
* Apply suggestions from code review
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
* Removing dead code
* Fix formatting
* Address review comments, add proper docstrings
---------
Co-authored-by: Jan Kotas <jkotas@microsoft.com>
matouskozak pushed a commit to matouskozak/runtime that referenced this pull request Apr 30, 2024
)
* Saturating floating point to integer conversions on Arm32
Follow up on dotnet#97529 (comment)
* Fixes, cleanup
@github-actionsgithub-actionsBot locked and limited conversation to collaborators May 10, 2024
Sign up for freeto subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIbreaking-changeIssue or PR that represents a breaking API or functional change over a previous release.community-contributionIndicates that the PR has been added by a community memberneeds-breaking-change-doc-createdBreaking changes need an issue opened with https://github.com/dotnet/docs/issues/new?template=dotnet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

14 participants

@khushal1996@ryujit-bot@DeepakRajendrakumaran@tannergooding@danmoseley@jkotas@filipnavara@fanyang-mono@gewarren@jakobbotsch@BruceForstall@LoopedBard3@kunalspathak@MichalPetryka