アームASMを習い始めています。ここで、vmull.u8 q7、d0、d4 命令の最後の「l」は何を意味するのだろうか? ここで説明されている命令VMUL{cond}と、使用可能なさまざまな条件を説明する条件コードを見つけましたが、 vmull の最後の「l」がリストにないため、その意味がわかりません。
2 に答える
4
"長いです"
2 つの固定小数点数を乗算すると、長さが 2 倍の「長い」結果が得られるため、結果を格納するにはレジスタ幅を 2 倍にする必要があります。
したがって、s8 x s8 => s16 という結果になります。
これは、2 つの「n」ビット数値を乗算するには、符号なしの符号付き数値(2 * n) - 1
のビットが必要になるため、固定小数点乗算で結果を完全な精度で格納するために技術的に必要です。ただし、算術演算では、小さい整数のみを操作し、上位ビットを気にしない場合があるため、より高速で必要なレジスタが少ない方を使用できます。信号処理で、16 ビットの符号付き数値 (s16) を使用する Q15 などの 10 進形式 ( 「Q」数値と呼ばれることもある) を表す場合、実際には下位ビットは必要なく、NEON はこれも提供します。. あなたが何を必要としても、NEONはそれを行うことができます.VMULL
(2 * n)
VMUL
VQDMLH
于 2013-06-28T21:13:48.427 に答える