アーム アセンブリと NEON SIMD 命令を使用します。2 つの Q レジスタにある最大 16 ビットの符号なし値を取得し、それらをしきい値と比較したいと考えています。すべての 16 ビット値がしきい値よりも小さい場合、関数を呼び出します。1 つ以上の値がしきい値より大きい場合は、別の関数を呼び出します。
次の SIMD 命令は最大値を取得します。
// しきい値は r レジスタです
vdup.16 q15, threshold
vmax.u16 q12, q14, q13
vcgt.u16 q11, q12, q15
vcgt は FPSCR フラグに影響しますか? ないと思います。次に、q11 がゼロかどうかを確認する必要があります。zeor の場合は function1 を呼び出し、そうでない場合は function2 を呼び出します。それは次のようになります
if (q11 == 0)
//call function1
else
//call function2
q11を4つのrレジスタに移動せずにどうすればよいですか?
ありがとう