dotnet/runtime
Ver no GitHubUnnecessary sign-extension for `LeadingZeroCount(UInt64)`
Open
#119.699 aberto em 14 de set. de 2025
area-CodeGen-coreclrhelp wanted
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
public static class LeadingZeroCount {
public static nint M1(ulong mask) {
return BitOperations.LeadingZeroCount(mask);
}
public static nint M2(ulong mask) {
return (nint)ulong.LeadingZeroCount(mask);
}
}
public static class TrailingZeroCount {
public static nint M1(ulong mask) {
return BitOperations.TrailingZeroCount(mask);
}
public static nint M2(ulong mask) {
return (nint)ulong.TrailingZeroCount(mask);
}
}
public static class PopCount {
public static nint M1(ulong mask) {
return BitOperations.PopCount(mask);
}
public static nint M2(ulong mask) {
return (nint)ulong.PopCount(mask);
}
}
// coreclr trunk-20250917+116db00b333e27b70b6e97c93bcfb304ca4245ab
LeadingZeroCount:M1(ulong):nint (FullOpts):
xor eax, eax
lzcnt rax, rdi
cdqe
ret
LeadingZeroCount:M2(ulong):nint (FullOpts):
xor eax, eax
lzcnt rax, rdi
ret
TrailingZeroCount:M1(ulong):nint (FullOpts):
xor eax, eax
tzcnt rax, rdi
cdqe
ret
TrailingZeroCount:M2(ulong):nint (FullOpts):
xor eax, eax
tzcnt rax, rdi
ret
PopCount:M1(ulong):nint (FullOpts):
xor eax, eax
popcnt rax, rdi
cdqe
ret
PopCount:M2(ulong):nint (FullOpts):
xor eax, eax
popcnt rax, rdi
ret