clang and gcc bit ops

This commit is contained in:
Nikita Smith
2024-11-08 10:22:26 -08:00
parent 776c8daa27
commit cf8c0e7442
2 changed files with 11 additions and 24 deletions
+11 -23
View File
@@ -143,12 +143,6 @@ bswap_u64(U64 x)
#if COMPILER_MSVC || (COMPILER_CLANG && OS_WINDOWS)
internal U64
count_bits_set16(U16 val)
{
return __popcnt16(val);
}
internal U64
count_bits_set32(U32 val)
{
@@ -195,46 +189,40 @@ clz64(U64 mask)
#elif COMPILER_CLANG || COMPILER_GCC
internal U64
count_bits_set16(U16 val)
{
NotImplemented;
return 0;
}
internal U64
count_bits_set32(U32 val)
{
NotImplemented;
return 0;
return __builtin_popcount(val);
}
internal U64
count_bits_set64(U64 val)
{
NotImplemented;
return 0;
return __builtin_popcountll(val);
}
internal U64
ctz32(U32 val)
{
NotImplemented;
return 0;
return __builtin_ctz(val);
}
internal U64
clz32(U32 val)
{
NotImplemented;
return 0;
return __builtin_clz(val);
}
internal U64
ctz64(U64 val)
{
return __builtin_ctzll(val);
}
internal U64
clz64(U64 val)
{
NotImplemented;
return 0;
return __builtin_clzll(val);
}
#else
-1
View File
@@ -769,7 +769,6 @@ internal U16 bswap_u16(U16 x);
internal U32 bswap_u32(U32 x);
internal U64 bswap_u64(U64 x);
internal U64 count_bits_set16(U16 val);
internal U64 count_bits_set32(U32 val);
internal U64 count_bits_set64(U64 val);