Redundant_OR

Created Diff never expires
19 removals
Lines
Total
Removed
Words
Total
Removed
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
164 lines
12 additions
Lines
Total
Added
Words
Total
Added
To continue using this feature, upgrade to
Diffchecker logo
Diffchecker Pro
161 lines
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX
## .NET 8.0.0 (42.42.42.42424), X64 RyuJIT AVX
```assembly
```assembly
; System.Text.Perf_Ascii.Equals_Chars()
; System.Text.Perf_Ascii.Equals_Chars()
sub rsp,28
sub rsp,28
mov r8,[rcx+20]
mov r8,[rcx+20]
test r8,r8
test r8,r8
je short M00_L04
je short M00_L04
lea rdx,[r8+10]
lea rdx,[r8+10]
mov eax,[r8+8]
mov eax,[r8+8]
M00_L00:
M00_L00:
mov r8,[rcx+28]
mov r8,[rcx+28]
test r8,r8
test r8,r8
je short M00_L02
je short M00_L02
lea rcx,[r8+10]
lea rcx,[r8+10]
mov r10d,[r8+8]
mov r10d,[r8+8]
M00_L01:
M00_L01:
mov [rsp+20],rcx
mov [rsp+20],rcx
cmp eax,r10d
cmp eax,r10d
jne short M00_L05
jne short M00_L05
mov r8d,r10d
mov r8d,r10d
mov rcx,rdx
mov rcx,rdx
mov rdx,[rsp+20]
mov rdx,[rsp+20]
call qword ptr [7FFB99BCE1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
call qword ptr [7FFB99BFE1A8]; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
jmp short M00_L03
jmp short M00_L03
M00_L02:
M00_L02:
xor ecx,ecx
xor ecx,ecx
xor r10d,r10d
xor r10d,r10d
jmp short M00_L01
jmp short M00_L01
M00_L03:
M00_L03:
add rsp,28
add rsp,28
ret
ret
M00_L04:
M00_L04:
xor edx,edx
xor edx,edx
xor eax,eax
xor eax,eax
jmp short M00_L00
jmp short M00_L00
M00_L05:
M00_L05:
xor eax,eax
xor eax,eax
jmp short M00_L03
jmp short M00_L03
; Total bytes of code 89
; Total bytes of code 89
```
```
```assembly
```assembly
; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
; System.Text.Ascii.Equals[[System.UInt16, System.Private.CoreLib],[System.UInt16, System.Private.CoreLib],[System.Text.Ascii+PlainLoader`1[[System.UInt16, System.Private.CoreLib]], System.Private.CoreLib]](UInt16 ByRef, UInt16 ByRef, UIntPtr)
sub rsp,98
sub rsp,98
vzeroupper
vzeroupper
cmp r8,8
cmp r8,8
jae short M01_L03
jae short M01_L03
xor eax,eax
xor eax,eax
test r8,r8
test r8,r8
jbe short M01_L01
jbe short M01_L01
M01_L00:
M01_L00:
movzx r10d,word ptr [rcx+rax*2]
movzx r10d,word ptr [rcx+rax*2]
movzx r9d,word ptr [rdx+rax*2]
movzx r9d,word ptr [rdx+rax*2]
cmp r10d,r9d
cmp r10d,r9d
jne near ptr M01_L10
jne near ptr M01_L10
or r10d,r9d
cmp r10d,7F
cmp r10d,7F
ja near ptr M01_L10
ja near ptr M01_L10
inc rax
inc rax
cmp rax,r8
cmp rax,r8
jb short M01_L00
jb short M01_L00
M01_L01:
M01_L01:
mov eax,1
mov eax,1
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
M01_L02:
M01_L02:
movzx eax,cl
movzx eax,cl
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
M01_L03:
M01_L03:
cmp r8,10
cmp r8,10
jb near ptr M01_L08
jb near ptr M01_L08
mov rax,rcx
mov rax,rcx
lea r10,[rdx+r8*2-20]
lea r10,[rdx+r8*2-20]
M01_L04:
M01_L04:
vmovups ymm0,[rax]
vmovups ymm0,[rax]
vmovups [rsp+60],ymm0
vmovups [rsp+60],ymm0
vmovups ymm0,[rdx]
vmovups ymm0,[rdx]
vmovups [rsp+40],ymm0
vmovups [rsp+40],ymm0
vmovups xmm0,[rsp+60]
vmovups xmm0,[rsp+60]
vpcmpeqw xmm0,xmm0,[rsp+40]
vpcmpeqw xmm0,xmm0,[rsp+40]
vpmovmskb r9d,xmm0
vpmovmskb r9d,xmm0
cmp r9d,0FFFF
cmp r9d,0FFFF
jne near ptr M01_L10
jne near ptr M01_L10
vmovups xmm0,[rsp+70]
vmovups xmm0,[rsp+70]
vpcmpeqw xmm0,xmm0,[rsp+50]
vpcmpeqw xmm0,xmm0,[rsp+50]
vpmovmskb r9d,xmm0
vpmovmskb r9d,xmm0
cmp r9d,0FFFF
cmp r9d,0FFFF
setne r9b
setne r9b
movzx r9d,r9b
movzx r9d,r9b
test r9d,r9d
test r9d,r9d
jne near ptr M01_L10
jne near ptr M01_L10
vmovups ymm0,[rsp+60]
vmovups ymm0,[rsp+60]
vptest ymm0,ymmword ptr [7FFB99639B80]
vptest ymm0,ymmword ptr [7FFB99669B40]
jne near ptr M01_L10
jne near ptr M01_L10
add rdx,20
add rdx,20
add rax,20
add rax,20
cmp rdx,r10
cmp rdx,r10
jbe short M01_L04
jbe short M01_L04
test r8b,0F
test r8b,0F
je near ptr M01_L01
je near ptr M01_L01
vmovups ymm0,[rcx+r8*2-20]
vmovups ymm0,[rcx+r8*2-20]
vmovups [rsp+20],ymm0
vmovups [rsp+20],ymm0
vmovups ymm0,[r10]
vmovups ymm0,[r10]
vmovups [rsp],ymm0
vmovups [rsp],ymm0
vmovups xmm0,[rsp+20]
vmovups xmm0,[rsp+20]
vpcmpeqw xmm0,xmm0,[rsp]
vpcmpeqw xmm0,xmm0,[rsp]
vpmovmskb ecx,xmm0
vpmovmskb ecx,xmm0
cmp ecx,0FFFF
cmp ecx,0FFFF
jne short M01_L05
jne short M01_L05
vmovups xmm0,[rsp+30]
vmovups xmm0,[rsp+30]
vpcmpeqw xmm0,xmm0,[rsp+10]
vpcmpeqw xmm0,xmm0,[rsp+10]
vpmovmskb r8d,xmm0
vpmovmskb r8d,xmm0
cmp r8d,0FFFF
cmp r8d,0FFFF
setne al
setne al
movzx eax,al
movzx eax,al
test eax,eax
test eax,eax
jne short M01_L05
jne short M01_L05
vmovups ymm0,[rsp+20]
vmovups ymm0,[rsp+20]
vptest ymm0,ymmword ptr [7FFB99639B80]
vptest ymm0,ymmword ptr [7FFB99669B40]
je short M01_L06
je short M01_L06
M01_L05:
M01_L05:
xor ecx,ecx
xor ecx,ecx
jmp short M01_L07
jmp short M01_L07
M01_L06:
M01_L06:
mov ecx,1
mov ecx,1
M01_L07:
M01_L07:
jmp near ptr M01_L02
jmp near ptr M01_L02
M01_L08:
M01_L08:
lea rax,[rcx+r8*2-10]
lea rax,[rcx+r8*2-10]
lea r10,[rdx+r8*2-10]
lea r10,[rdx+r8*2-10]
M01_L09:
M01_L09:
vmovups xmm0,[rcx]
vmovups xmm0,[rcx]
vmovups xmm1,[rdx]
vpcmpeqw xmm1,xmm0,[rdx]
vpcmpeqw xmm2,xmm0,xmm1
vpmovmskb r9d,xmm1
vpmovmskb r9d,xmm2
cmp r9d,0FFFF
cmp r9d,0FFFF
jne short M01_L10
jne short M01_L10
vpor xmm0,xmm0,xmm1
vptest xmm0,xmmword ptr [7FFB99669B40]
vptest xmm0,xmmword ptr [7FFB99639B80]
jne short M01_L10
jne short M01_L10
add rdx,10
add rdx,10
add rcx,10
add rcx,10
cmp rdx,r10
cmp rdx,r10
jbe short M01_L09
jbe short M01_L09
test r8b,7
test r8b,7
je near ptr M01_L01
je near ptr M01_L01
vmovups xmm0,[rax]
vmovups xmm0,[rax]
vmovups xmm1,[r10]
vpcmpeqw xmm1,xmm0,[r10]
vpcmpeqw xmm2,xmm0,xmm1
vpmovmskb eax,xmm1
vpmovmskb eax,xmm2
cmp eax,0FFFF
cmp eax,0FFFF
jne short M01_L10
jne short M01_L10
vpor xmm0,xmm0,xmm1
vptest xmm0,xmmword ptr [7FFB99669B40]
vptest xmm0,xmmword ptr [7FFB99639B80]
je near ptr M01_L01
je near ptr M01_L01
M01_L10:
M01_L10:
xor eax,eax
xor eax,eax
vzeroupper
vzeroupper
add rsp,98
add rsp,98
ret
ret
; Total bytes of code 483
; Total bytes of code 464
```
```