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 |