area-CodeGen-coreclrhelp wantedtenet-performance
Métricas do repositório
- Stars
- (17.886 stars)
- Métricas de merge de PR
- (Mesclagem média 12d 11h) (661 fundiu PRs em 30d)
Description
bool Test_Bool(bool u, bool v, bool w)
{
return u & v & w | u | v | w | u & v & w | u | v | w &
u & v & w | u | v | w | u & v & w | u | v | w &
u & v & w | u | v | w | u & v & w | u | v | w;
}
X64 outputs:
G_M37833_IG02:
mov eax, edx
and eax, r8d
and eax, r9d
mov ecx, eax
or ecx, edx
or ecx, r8d
or ecx, r9d
or ecx, eax
or ecx, edx
or ecx, r8d
mov r10d, r9d
and r10d, edx
and r10d, r8d
and r10d, r9d
or ecx, r10d
or ecx, edx
or ecx, r8d
or ecx, r9d
or ecx, eax
or ecx, edx
or ecx, r8d
or ecx, r10d
or ecx, edx
or ecx, r8d
or ecx, r9d
or eax, ecx
or eax, edx
or eax, r8d
or eax, r9d
movzx rax, al
;; size=79 bbWeight=1 PerfScore 7.50
G_M37833_IG03:
ret
but could output:
or edx, esi
mov eax, edx
or eax, edi
movzx rax, al
ret
Given this is a contrived example, not sure what the overall impact would be if we did optimize this.