Regular vs AggressiveInlining

Created Diff never expires
73 removals
67 lines
53 additions
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
```