Burst Arm Neon intrinsic リファレンス
このページには、Unity.Burst.Intrinsics.Arm.Neon の API のリファレンスが順に記載されています。API の使用方法については、プロセッサー固有の SIMD 拡張命令 に関するドキュメントを参照してください。
intrinsic の型の作成と変換
算術
演算 | 説明 | API |
---|---|---|
vadd | 加算 | |
vaddv | 加算、ベクトル内の全要素 | |
vaddl | 加算、ロング | |
vaddlv | 加算、ロング、ベクトル内の全要素 | |
vaddw | 加算、ワイド | |
vhadd | 半減加算 | |
vrhadd | 丸め半減加算 | |
vqadd | 飽和加算 | |
vsqadd | 符号なし飽和演算、符号付き値の累積 | API リストを展開するにはここをクリックvsqadd_u16vsqadd_u32 vsqadd_u64 vsqadd_u8 vsqaddq_u16 vsqaddq_u32 vsqaddq_u64 vsqaddq_u8 vsqaddb_u8 vsqaddh_u16 vsqadds_u32 vsqaddd_u64 |
vuqadd | 符号付き飽和演算、符号なし値の累積 | API リストを展開するにはここをクリックvuqadd_s16vuqadd_s32 vuqadd_s64 vuqadd_s8 vuqaddq_s16 vuqaddq_s32 vuqaddq_s64 vuqaddq_s8 vuqaddb_s8 vuqaddh_s16 vuqadds_s32 vuqaddd_s64 |
vaddhn | 上位を返す加算、ナロー | |
vraddhn | 上位を返す丸め加算、ナロー | |
vpadd | 加算、ペアワイズ (ベクトル) | |
vpaddl | 符号付き加算、ロング、ペアワイズ | |
vpadal | 符号付き加算と累積、ロング、ペアワイズ | |
vsub | 減算 | |
vsubl | 減算、ロング | |
vsubw | 減算、ワイド | |
vhsub | 半減減算 | |
vqsub | 飽和減算 | |
vsubhn | 上位を返す減算、ナロー | |
vrsubhn | 上位を返す丸め減算、ナロー |
乗算
演算 | 説明 | API |
---|---|---|
vmul | 乗算 (ベクトル) | |
vmul_n | スカラーとベクトルの乗算 | |
vmul_lane | 乗算 (ベクトル) | API リストを展開するにはここをクリックvmul_lane_f32vmul_lane_f64 vmul_lane_s16 vmul_lane_s32 vmul_lane_u16 vmul_lane_u32 vmul_laneq_f32 vmul_laneq_f64 vmul_laneq_s16 vmul_laneq_s32 vmul_laneq_u16 vmul_laneq_u32 vmulq_lane_f32 vmulq_lane_f64 vmulq_lane_s16 vmulq_lane_s32 vmulq_lane_u16 vmulq_lane_u32 vmulq_laneq_f32 vmulq_laneq_f64 vmulq_laneq_s16 vmulq_laneq_s32 vmulq_laneq_u16 vmulq_laneq_u32 vmuls_lane_f32 vmuls_laneq_f32 vmuld_lane_f64 vmuld_laneq_f64 |
vmull | 乗算、ロング (ベクトル) | |
vmull_n | スカラーとベクトルの乗算、ロング | |
vmull_lane | 乗算、ロング (ベクトル) | |
vmulx | 浮動小数点乗算拡張 | |
vmla | 累算器への積和 (ベクトル) | |
vmla_lane | ベクトル乗算累積、スカラーを使用 | API リストを展開するにはここをクリックvmla_lane_f32vmla_lane_s16 vmla_lane_s32 vmla_lane_u16 vmla_lane_u32 vmla_laneq_f32 vmla_laneq_s16 vmla_laneq_s32 vmla_laneq_u16 vmla_laneq_u32 vmlaq_lane_f32 vmlaq_lane_s16 vmlaq_lane_s32 vmlaq_lane_u16 vmlaq_lane_u32 vmlaq_laneq_f32 vmlaq_laneq_s16 vmlaq_laneq_s32 vmlaq_laneq_u16 vmlaq_laneq_u32 |
vmla_n | ベクトル乗算累積、スカラーを使用 | |
vmlal | 積和演算、ロング (ベクトル) | |
vmlal_lane | 積和演算、ロング、スカラーを使用 | |
vmlal_n | 積和演算、ロング、スカラーを使用 | |
vmls | 累算器からの積差 (ベクトル) | |
vmls_lane | ベクトル積差、スカラーを使用 | API リストを展開するにはここをクリックvmls_lane_f32vmls_lane_s16 vmls_lane_s32 vmls_lane_u16 vmls_lane_u32 vmls_laneq_f32 vmls_laneq_s16 vmls_laneq_s32 vmls_laneq_u16 vmls_laneq_u32 vmlsq_lane_f32 vmlsq_lane_s16 vmlsq_lane_s32 vmlsq_lane_u16 vmlsq_lane_u32 vmlsq_laneq_f32 vmlsq_laneq_s16 vmlsq_laneq_s32 vmlsq_laneq_u16 vmlsq_laneq_u32 |
vmls_n | ベクトル積差、スカラーを使用 | |
vmlsl | 積差演算、ロング (ベクトル) | |
vmlsl_lane | ベクトル積差、ロング、スカラーを使用 | |
vmlsl_n | ベクトル積差、ロング、スカラーを使用 | |
vqdmull | 符号付き飽和演算、2 倍乗算、ロング | |
vqdmull_lane | ベクトル飽和演算、2 倍乗算、ロング、スカラーを使用 | |
vqdmull_n | ベクトル飽和演算、2 倍乗算、ロング、スカラーを使用 | |
vqdmulh | 飽和演算、2 倍乗算、上位半分を返す | |
vqdmulh_lane | ベクトル飽和演算、2 倍乗算、上位部を返す、スカラーを使用 | |
vqdmulh_n | ベクトル飽和演算、2 倍乗算、上位部を返す、スカラーを使用 | |
vqrdmulh | 飽和演算、丸め 2 倍乗算、上位半分を返す | |
vqrdmulh_lane | ベクトル飽和演算、丸め 2 倍乗算、上位部を返す、スカラーを使用 | |
vqrdmulh_n | ベクトル飽和演算、丸め 2 倍乗算、上位部を返す、スカラーを使用 | |
vqdmlal | 飽和演算、2 倍積和、ロング | |
vqdmlal_lane | ベクトル飽和演算、2 倍積和、ロング、 スカラーを使用 |
|
vqdmlal_n | ベクトル飽和演算、2 倍積和、ロング、 スカラーを使用 |
|
vqdmlsl | 符号付き飽和演算、2 倍積差、ロング | |
vqdmlsl_lane | ベクトル飽和演算、2 倍積差、ロング、 スカラーを使用 |
|
vqdmlsl_n | ベクトル飽和演算、2 倍積差、ロング、 スカラーを使用 |
|
vqrdmlah | 飽和演算、丸め 2 倍積和、上位半分を返す (ベクトル) |
|
vqrdmlah_lane | 飽和演算、丸め 2 倍積和、上位半分を返す (ベクトル) |
|
vqrdmlsh | 飽和演算、丸め 2 倍積差、上位半分を返す (ベクトル) |
|
vqrdmlsh_lane | 飽和演算、丸め 2 倍積差、上位半分を返す (ベクトル) |
|
vfma | 累算器への浮動小数点融合積和 (ベクトル) | |
vfma_n | 累算器への浮動小数点融合積和 (ベクトル) | |
vfma_lane | 累算器への浮動小数点融合積和 (ベクトル) | |
vfms | 累算器からの浮動小数点融合積差 (ベクトル) |
|
vfms_n | 累算器からの浮動小数点融合積差 (ベクトル) |
|
vfms_lane | 累算器からの浮動小数点融合積差 (ベクトル) |
|
vdiv | 浮動小数点除算 (ベクトル) |
データ処理
演算 | 説明 | API |
---|---|---|
vpmax | 最大値、ペアワイズ | |
vpmaxnm | 浮動小数点最大値、ペアワイズ (ベクトル) | |
vpmin | 最小値、ペアワイズ | |
vpminnm | 浮動小数点最小値、ペアワイズ (ベクトル) | |
vabd | 絶対差 | |
vabdl | 絶対差、ロング | |
vaba | 絶対差と累積 | |
vabal | 絶対差と累積、ロング | |
vmax | 最大値 | |
vmaxnm | 浮動小数点最大値 | |
vmaxv | ベクトル内の要素の最大値 | |
vmin | 最小値 | |
vminnm | 浮動小数点最小値 | |
vminv | ベクトル内の要素の最小値 | |
vabs | 絶対値 | |
vqabs | 飽和演算、絶対値 | |
vneg | マイナス化 | |
vqneg | 飽和演算、マイナス化 | |
vcls | 先頭の符号ビットのカウント | |
vclz | 先頭の 0 ビットのカウント | |
vcnt | 値が 1 のビットのカウント、バイトごと | |
vrecpe | 逆数推定 | API リストを展開するにはここをクリックvrecpe_f32vrecpe_f64 vrecpe_u32 vrecpeq_f32 vrecpeq_f64 vrecpeq_u32 vrecpes_f32 vrecped_f64 |
vrecps | 逆数ステップ | |
vrecpx | 浮動小数点逆数指数 | |
vrsqrte | 逆数平方根推定 | API リストを展開するにはここをクリックvrsqrte_f32vrsqrte_f64 vrsqrte_u32 vrsqrteq_f32 vrsqrteq_f64 vrsqrteq_u32 vrsqrtes_f32 vrsqrted_f64 |
vrsqrts | 逆数平方根ステップ | |
vmovn | 抽出、ナロー | |
vmovl | 抽出、ロング | |
vqmovn | 飽和演算、抽出、ナロー | |
vqmovun | 符号付き飽和演算、抽出、符号なし、ナロー |
比較
演算 | 説明 | API |
---|---|---|
vceq | 比較、ビット演算、等価 | |
vceqz | 比較、ビット演算、0 に等しい | |
vcge | 比較、大なりイコール | |
vcgez | 比較、0 以上 | |
vcle | 比較、小なりイコール | |
vclez | 比較、0 以下 | |
vcgt | 比較、大なり | |
vcgtz | 比較、0 より大きい | |
vclt | 比較、小なり | |
vcltz | 比較、0 より小さい | |
vcage | 浮動小数点絶対値比較、0 以上 | |
vcagt | 浮動小数点絶対値比較、大なり | |
vcale | 浮動小数点絶対値比較、小なりイコール | |
vcalt | 浮動小数点絶対値比較、小なり |
ビット演算
演算 | 説明 | API |
---|---|---|
vtst | ビットが 0 ではないことを検査 | |
vmvn | ビット演算、NOT | |
vand | ビット演算、AND | |
vorr | ビット演算、OR | |
vorn | ビット演算、OR NOT | |
veor | ビット演算、排他的 OR | |
vbic | ビット演算、ビット消去 | |
vbsl | ビット演算、選択 |
シフト
演算 | 説明 | API |
---|---|---|
vshl | 左シフト (レジスタ) | |
vqshl | 飽和演算、左シフト (レジスタ) | |
vqshl_n | 飽和演算、左シフト (即値) | |
vqshlu_n | 飽和演算、左シフト符号なし (即値) | |
vrshl | 丸め左シフト (レジスタ) | |
vqrshl | 飽和演算、丸め左シフト (レジスタ) | |
vshl_n | 左シフト (即値) | |
vshll_n | 左シフト、ロング (即値) | |
vshr_n | 右シフト (即値) | |
vrshr_n | 丸め右シフト (レジスタ) | |
vshrn_n | 右シフト、ナロー (即値) | |
vqshrun_n | 符号付き飽和演算、右シフト、 符号なし、ナロー (即値) |
|
vqrshrun_n | 符号付き飽和演算、丸め右シフト、 符号なし、ナロー (即値) |
|
vqshrn_n | 符号付き飽和演算、右シフト、ナロー (即値) | |
vrshrn_n | 丸め右シフト、ナロー (即値) | |
vqrshrn_n | 符号付き飽和演算、丸め右シフト、ナロー (即値) | API リストを展開するにはここをクリックvqrshrn_n_s16vqrshrn_n_s32 vqrshrn_n_s64 vqrshrn_n_u16 vqrshrn_n_u32 vqrshrn_n_u64 vqrshrnh_n_s16 vqrshrnh_n_u16 vqrshrns_n_s32 vqrshrns_n_u32 vqrshrnd_n_s64 vqrshrnd_n_u64 vqrshrn_high_n_s16 vqrshrn_high_n_s32 vqrshrn_high_n_s64 vqrshrn_high_n_u16 vqrshrn_high_n_u32 vqrshrn_high_n_u64 |
vsra_n | 符号付き右シフトと累積 (即値) | |
vrsra_n | 符号付き丸め右シフトと累積 (即値) | |
vsri_n | 右シフトと挿入 (即値) | |
vsli_n | 左シフトと挿入 (即値) |
浮動小数点
ロードと格納
演算 | 説明 | API |
---|---|---|
vld1 | メモリからベクトルをロード | |
vst1 | メモリにベクトルを格納 | |
vget_lane | ベクトル要素を取得 | |
vset_lane | ベクトル要素を設定 |
置換
演算 | 説明 | API |
---|---|---|
vext | ベクトルのペアからベクトルを抽出 | |
vtbl1 | テーブルベクトル、ルックアップ | |
vtbx1 | テーブルベクトル、ルックアップ拡張 | |
vqtbl1 | テーブルベクトル、ルックアップ | |
vqtbx1 | テーブルベクトル、ルックアップ拡張 | |
vrbit | ビット順序のリバース | |
vrev16 | 16 ビットハーフワードの要素のリバース | |
vrev32 | 32 ビットワードの要素のリバース | API リストを展開するにはここをクリックvrev32_s16vrev32_s8 vrev32_u16 vrev32_u8 vrev32q_s16 vrev32q_s8 vrev32q_u16 vrev32q_u8 |
vrev64 | 64 ビットダブルワードの要素のリバース | |
vtrn1 | ベクトルの転置 (プライマリ) | |
vtrn2 | ベクトルの転置 (セカンダリ) | |
vzip1 | ベクトルのジップ (プライマリ) | |
vzip2 | ベクトルのジップ (セカンダリ) | |
vuzp1 | ベクトルのジップ解除 (プライマリ) | |
vuzp2 | ベクトルのジップ解除 (セカンダリ) |
暗号化
演算 | API |
---|---|
CRC32 | |
SHA1 | |
SHA256 | |
AES |
その他
演算 | 説明 | API |
---|---|---|
vsqrt | 平方根 | |
vdot | ドット積 | |
vdot_lane | ドット積 | API リストを展開するにはここをクリックvdot_lane_s32vdot_lane_u32 vdot_laneq_s32 vdot_laneq_u32 vdotq_lane_s32 vdotq_lane_u32 vdotq_laneq_s32 vdotq_laneq_u32 |