次の AI エンジン API を使用すると、スカラー値および同じデータ型の入力ベクターのすべての要素、または同じデータ型とサイズの 2 つの入力ベクターに対して、ビット AND、OR、XOR、および NOT 演算を実行できます。
-
aie::bit_and
-
aie::bit_or
-
aie::bit_xor
次の AI エンジン API を使用すると、入力ベクターの要素に対してビット NOT 演算を実行できます。
-
aie::bit_not
注記:
aie::bit_*
演算は、AI エンジンのスカラー プロセッサでエミュレートされます。aie::vector<int16,8> iv,iv2;
// 0xf bit AND with each component of iv
aie::vector<int16,8> iv_bit_and=aie::bit_and((int16)0xf,iv);
aie::vector<int16,8> iv_bit_or=aie::bit_or((int16)0xf,iv);
aie::vector<int16,8> iv_bit_xor=aie::bit_xor((int16)0xf,iv);
// bit AND on each component of iv and iv2
aie::vector<int16,8> iv_bit_and2=aie::bit_and(iv,iv2);
aie::vector<int16,8> iv_bit_or2=aie::bit_or(iv,iv2);
aie::vector<int16,8> iv_bit_xor2=aie::bit_xor(iv,iv2);
aie::vector<int16,8> iv_not=aie::bit_not(iv);
次の AI エンジン API は、ベクターのすべてのコンポーネントを指定されたビット数だけ右または左にシフトします。
-
aie::downshift
: ベクターのコンポーネントを指定したビット分右に算術 (符号拡張して) シフトする。aie::vector<int16,8> iv_down=aie::downshift(iv,2);
-
aie::upshift
: 各コンポーネントを指定したビット分左にシフトする。0 で埋められる。aie::vector<int16,8> iv_up=aie::upshift(iv,2);
-
aie::logical_downshift
: ベクターのコンポーネントを指定したビット分右に論理 (ゼロ拡張して) シフトする。aie::vector<int16,8> iv_logic_down=aie::logical_downshift(iv,2);