C/C++ ビルトイン関数 - 2023.2 日本語

Vitis 高位合成ユーザー ガイド (UG1399)

Document ID
UG1399
Release Date
2023-12-18
Version
2023.2 日本語

Vitis HLS では、次の C/C++ ビルトイン関数がサポートされます。

  • __builtin_clz(unsigned int x): x の最上位ビットから数えた先行ゼロのビット数を返します。x が 0 の場合は、結果は未定義になります。
  • __builtin_ctz(unsigned int x): x の再開ビットから数えた後置ゼロのビット数を返します。x が 0 の場合は、結果は未定義になります。

次に、これらの関数の使用例を示します。この例は、in0 の先行ゼロの数と in1 の後置ゼロの数 0 の数の合計を返します。

int foo (int in0, int in1) {
 int ldz0 = __builtin_clz(in0);
 int ldz1 = __builtin_ctz(in1);
 return (ldz0 + ldz1);
}