ARMv6 SIMD コンパイラ組み込み関数(接頭文字別)

Table 33 は、コンパイラ組み込み関数の接頭文字別一覧です。

__sel() コンパイラ組み込み関数については、この表のいずれの分類にも属しません。このコンパイラ組み込み関数は、GE ビットの値に基づいてバイトを択するものです。

Table 33. ARMv6 SIMD コンパイラ組み込み関数(接頭文字別)

 ARMv6 SIMD 命令のコンパイラ組み込み関数(接頭文字別一覧)
コンパイラ組み込み関数の分類__s[a]__q[b]__sh[c]__u[d]__uq[e]

__uh[f]

バイト加算__sadd8__qadd8__shadd8__uadd8__uqadd8__uhadd8
バイト減算__ssub8__qsub8__shsub8__usub8__uqsub8__uhsub8
ハーフワード加算__sadd16__qadd16__shadd16__uadd16__uqadd16__uhadd16
ハーフワード減算__ssub16__qsub16__shsub16__usub16__uqsub16__uhsub16
一方のオペランド内のハーフワードを交換した上で、上位ハーフワードの加算と下位ハーフワードの減算を実行__sasx__qasx__shasx__uasx__uqasx__uhasx
一方のオペランド内のハーフワードを交換した上で、上位ハーフワードの減算と下位ハーフワードの加算を実行__ssax__qsax__shsax__usax__uqsax__uhsax
符号なし絶対差の和---__usad8--
符号なし絶対差の和と累算---__usada8--
選択された幅へのサチュレーション__ssat16--__usat16--
値の抽出(ビット位置 [23:16][7:0])、16 ビットへのゼロ拡張---__uxtb16--
第 2 オペランドからの値の抽出(ビット位置[23:16][7:0])、16 ビットへのゼロ拡張、第 1 オペランドへの加算---__uxtab16--
符号拡張__sxtb16-----
符号拡張、加算__sxtab16-----
符号付き乗算、積の加算__smuad-----
一方のオペランドのハーフワードを交換した上で、符号付き乗算を実行して積を加算__smuadx-----
符号付き乗算、積の減算__smusd-----
一方のオペランドのハーフワードを交換した上で、符号付き乗算を実行して積を減算__smusdx-----
符号付き乗算、別のオペランドに対する両方の結果の加算__smlad-----
一方のオペランドのハーフワードを交換した上で、2 つの 16 ビット乗算を実行し、その両方の結果を別のオペランドに加算__smladx-----
2 つの 16 ビット乗算、別のオペランドに対する両方の結果の加算__smlald-----
一方のオペランドのハーフワードを交換した上で、2 つの 16 ビット乗算を実行し、その両方の結果を別のオペランドに加算__smlaldx-----
下位ハーフワードと上位ハーフワードについての 2 つの 16 ビット乗算を実行し、下位ハーフワードの積から上位ハーフワードの積を減算することによってその積の差を求め、32 ビット累算オペランドにその差を加算__smlsd-----
一方のオペランドのハーフワードを交換した上で、2 つの符号付き 16 ビット乗算を実行し、その積の差を 32 ビット累算オペランドに加算__smlsdx-----
下位ハーフワードと上位ハーフワードについての 2 つの 16 ビット乗算を実行し、下位ハーフワードの積から上位ハーフワードの積を減算することによってその積の差を求め、64 ビット累算オペランドにその差を加算__smlsld-----
一方のオペランド内でハーフワードを交換した上で、2 つの 16 ビット乗算を実行し、その積の差を 64 ビット累算オペランドに加算__smlsldx-----

[a] 符号付き

[b] 符号付きサチュレート

[c] 符号付き二等分演算

[d] 符号なし

[e] 符号なしサチュレート

[f] 符号なし二等分演算


Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0491EJ
Non-ConfidentialID081711