Vitis HLS 支持以下 C/C++ 语言内置函数:
-
__builtin_clz(unsigned int x)
:返回前置 0 位数量(以 x 表示),从最高有效位的位置开始。如果 x 为 0,则结果为未定义。 -
__builtin_ctz(unsigned int x)
:返回后置 0 位数量(以 x 表示),从最低有效位的位置开始。如果 x 为 0,则结果为未定义。
以下示例显示这些函数的使用方式。此示例返回 in0 中前置 0 的数量和 in1 中后置 0 的数量之和:
int foo (int in0, int in1) {
int ldz0 = __builtin_clz(in0);
int ldz1 = __builtin_ctz(in1);
return (ldz0 + ldz1);
}