dotnet/runtime
Voir sur GitHub[JIT] X64 - Possible comparison optimization using `and` with a small type
Open
#81 520 ouverte le 2 févr. 2023
arch-x64area-CodeGen-coreclrhelp wantedtenet-performance
Métriques du dépôt
- Stars
- (17 886 stars)
- Métriques de merge PR
- (Merge moyen 12j 11h) (661 PRs mergées en 30 j)
Description
using System.Runtime.CompilerServices;
static class Program
{
[MethodImpl(MethodImplOptions.NoInlining)]
public static void SideEffect()
{
}
public static bool Test(byte p, int i)
{
if ((p & 0xffffff00) != 0)
{
SideEffect();
return true;
}
return false;
}
}
The (p & 0xffffff00) != 0 condition in this case can never be true. So, we could optimize this by folding it into false thus will eliminate the true path.
This will probably not have a lot of impact.