Regular vs AggressiveInlining

Created Diff never expires
52 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
67 lines
34 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
50 lines
```assembly
; System.Linq.Enumerable+RangeIterator.ToArray()
; System.Linq.Enumerable+RangeIterator.ToArray()
push rdi
push rsi
push rsi
sub rsp,38
sub rsp,20
xor eax,eax
vzeroupper
mov [rsp+28],rax
mov [rsp+30],rax
mov esi,[rcx+8]
mov esi,[rcx+8]
mov edx,[rcx+0C]
mov edx,[rcx+0C]
sub edx,esi
sub edx,esi
movsxd rdx,edx
movsxd rdx,edx
mov rcx,offset MT_System.Int32[]
mov rcx,offset MT_System.Int32[]
call CORINFO_HELP_NEWARR_1_VC
call CORINFO_HELP_NEWARR_1_VC
mov rdi,rax
lea rdx,[rax+10]
lea rcx,[rdi+10]
mov ecx,[rax+8]
mov edx,[rdi+8]
movsxd r8,ecx
mov [rsp+28],rcx
lea r8,[rdx+r8*4]
mov [rsp+30],edx
lea rcx,[rsp+28]
mov edx,esi
call qword ptr [7FF88B60F480]; IdkBenchmarksIguess.Enumerable2+RangeIterator.FillNoInline(System.Span`1<Int32>, Int32)
mov rax,rdi
add rsp,38
pop rsi
pop rdi
ret
; Total bytes of code 86
```
```assembly
; System.Linq.Enumerable+RangeIterator.Fill(System.Span`1<Int32>, Int32)
vzeroupper
mov rax,[rcx]
mov ecx,[rcx+8]
mov r8d,ecx
lea r8,[rax+r8*4]
cmp ecx,8
cmp ecx,8
jl short M02_L01
jl short M01_L01
vmovd xmm0,edx
vmovd xmm0,esi
vpbroadcastd ymm0,xmm0
vpbroadcastd ymm0,xmm0
vpaddd ymm0,ymm0,[7FF88B2DFD80]
vpaddd ymm0,ymm0,[7FF88B2EFD00]
vmovups ymm1,[7FF88B2DFDA0]
vmovups ymm1,[7FF88B2EFD20]
lea rdx,[r8-20]
lea rcx,[r8-20]
nop dword ptr [rax]
nop dword ptr [rax]
nop dword ptr [rax]
nop dword ptr [rax]
M02_L00:
M01_L00:
vmovups [rax],ymm0
vmovups [rdx],ymm0
vpaddd ymm0,ymm0,ymm1
vpaddd ymm0,ymm0,ymm1
add rax,20
add rdx,20
cmp rax,rdx
cmp rdx,rcx
jb short M02_L00
jb short M01_L00
vmovd edx,xmm0
vmovd esi,xmm0
M02_L01:
M01_L01:
cmp rax,r8
cmp rdx,r8
jae short M02_L03
jae short M01_L03
nop word ptr [rax+rax]
nop word ptr [rax+rax]
M02_L02:
M01_L02:
lea ecx,[rdx+1]
lea ecx,[rsi+1]
mov [rax],edx
mov [rdx],esi
add rax,4
add rdx,4
cmp rax,r8
cmp rdx,r8
mov edx,ecx
mov esi,ecx
jb short M02_L02
jb short M01_L02
M02_L03:
M01_L03:
vzeroupper
vzeroupper
add rsp,20
pop rsi
ret
ret
; Total bytes of code 116
; Total bytes of code 153
```