Added clz, ctz, popcount, bswap, bitreverse.

This commit is contained in:
Christoffer Lerno
2022-08-16 21:18:14 +02:00
parent 15586b3076
commit ae51214c47
9 changed files with 114 additions and 2 deletions

41
lib/std/bits.c3 Normal file
View File

@@ -0,0 +1,41 @@
module std::bits;
/**
* @require types::is_intlike($typeof(i)) `The input must be an integer or integer vector`
**/
macro popcount(i)
{
return $$popcount(i);
}
/**
* @require types::is_intlike($typeof(i)) `The input must be an integer or integer vector`
**/
macro reverse(i)
{
return $$bitreverse(i);
}
/**
* @require types::is_intlike($typeof(i)) `The input must be an integer or integer vector`
**/
macro bswap(i) @builtin
{
return $$bswap(i);
}
/**
* @require types::is_intlike($typeof(i)) `The input must be an integer or integer vector`
**/
macro ctz(i) @builtin
{
return $$ctz(i);
}
/**
* @require types::is_intlike($typeof(i)) `The input must be an integer or integer vector`
**/
macro clz(i) @builtin
{
return $$clz(i);
}