MAC 組み込み関数
MAC 組み込み関数は、2 つのバッファー (X および Z バッファー) からのデータ間でベクター積和演算を実行します。その他のパラメーターおよびオプションを指定すると、柔軟性が増し (ベクター内のデータ選択、出力レーン数)、オプションの機能 (異なる入力データサイズ、前置加算など) も追加できます。入力バッファーには、Y バッファーというバッファーもあります。このバッファーの値は、乗算前に X バッファーの値と一緒に前置加算できます。組み込み関数の結果は、アキュムレータに追加されます。
組み込み関数のパラメーターを使用すると、各レーンおよび列の異なる入力バッファーから柔軟にデータを選択できるようになり、すべて同じパターンのパラメーターでもそのようになります。バッファー内の開始点は、最初の行と最初の列に最初の要素を選択する (x/y/z) start パラメーターで指定します。各レーンに柔軟性を持たせるには、(x/y/z) オフセットで開始点に追加される各レーンのオフセット値を指定します。最後に、(x/y/z) step パラメーターで、前の位置に基づいて各列間のデータ選択のステップを定義します。組み込み関数で ystep が指定されない場合は、xstep の対称になることに注意してください。
x/y バッファーおよび z バッファーの主な並べ替え粒度は、それぞれ 32 ビットと 16 ビットです。複素数は、並べ替えでは 1 つのエンティティとみなされます (たとえば、cint16 は並べ替えでは 32 ビットとみなされます)。zstart パラメーターは、コンパイル時間定数にする必要があります。x/y の 8 ビットおよび 16 ビットの並べ替え粒度と z の 8 ビットの粒度には、このセクションの最後に示すように特定の制限があります。次のセクションでは、さまざまなデータ幅について説明し、これらのデータ幅での MAC 組み込み関数の結果について説明します。