Advanced SIMD と浮動小数点命令の概要

以下の表では、Advanced SIMD 命令と浮動小数点命令の概要を説明します。

Show/hideAdvanced SIMD 命令

Table 16 に Advanced SIMD 命令の概要を示します。Advanced SIMD 命令を浮動小数点命令として使用することはできません。

Table 16. Advanced SIMD 命令の場所

ニーモニック概要を参照
VABAVABD絶対差と累積、絶対差VABA{L}、VABD{L}
VABS絶対値V{Q}ABS および V{Q}NEG
VACGEVACGT以上(絶対値比較)、超VACGE および VACGT
VACLEVACLT以下(絶対値比較)、未満(疑似命令)VACLE および VACLT
VADD加算V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL、VSUBW
VADDHN加算、上位半分の選択V{R}ADDHN および V{R}SUBHN
VANDビット単位論理積VAND、VBIC、VEOR、VORN、VORR(レジスタ)
VANDビット単位論理積(疑似命令)VAND および VORN (イミディエート)
VBICビット単位ビットクリア(レジスタ)VAND、VBIC、VEOR、VORN、VORR(レジスタ)
VBICビット単位ビットクリア(イミディエート)VBIC および VORR (イミディエート)
VBIFVBITVBSLFalse の場合はビット単位挿入、True の場合はビット単位を挿入、および選択VBIF、VBIT、VBSL
VCEQVCLEVCLT等しい(比較)、以下(比較)、未満(比較)VCEQ、VCGE、VCGT、VCLE、および VCLT
VCGEVCGT以上(比較)、超(比較)VCEQ、VCGE、VCGT、VCLE、および VCLT
VCLEVCLT以下(比較)、未満(比較、疑似命令)VCLE および VCLT
VCLSVCLZVCNT先行符号ビットカウント、先行ゼロカウント、およびセットビットカウントVCLS、VCLZ、VCNT
VCVT固定小数点または整数から浮動小数点へ、浮動小数点から整数または固定小数点への変換VCVT(固定小数点または整数と浮動小数点間)
VCVT指定された丸めモードを使用した浮動小数点から整数への変換VCVT(指定された丸めモードを使用した浮動小数点から整数への変換)
VCVT半精度浮動小数点数と単精度浮動小数点数間の変換VCVT(半精度浮動小数点数と単精度浮動小数点数間の変換)
VDUPベクタの全レーンへのスカラの複製VDUP
VEORビット単位排他的論理和(XOR)VAND、VBIC、VEOR、VORN、VORR(レジスタ)
VEXT抽出VEXT
VFMAVFMS結合積和、結合積差(ベクタ)VFMA、VFMS
VHADDVHSUB二分加算、二分減算V{R}HADD および VHSUB
VLDベクタロードAdvanced SIMD 要素と構造体のロード/ストア命令
VMAXVMIN最大値、最小値VMAX、VMIN、VPMAX、VPMIN
VMAXNMVMINNM最大値、最小値、IEEE 754-2008 との互換性VMAXNM、VMINNM(Advanced SIMD)
VMLAVMLS積和、積差(ベクタ)VMUL{L}、VMLA{L}、VMLS{L}
VMLAVMLS積和、積差(スカラによる)VMUL{L}、VMLA{L}、VMLS{L}(スカラによる)
VMOV移動(イミディエート)VMOV、VMVN(イミディエート)
VMOV移動(レジスタ)VMOV、VMVN(レジスタ)
VMOVLVMOV{U}NLong 移動、Narrow 移動(レジスタ)VMOVL, V{Q}MOVN, VQMOVUN
VMUL乗算(ベクタ)VMUL{L}、VMLA{L}、VMLS{L}
VMUL乗算(スカラによる)VMUL{L}、VMLA{L}、VMLS{L}(スカラによる)
VMVN負の移動(イミディエート)VMOV、VMVN(イミディエート)
VNEG否定V{Q}ABS および V{Q}NEG
VORNビット単位否定論理和VAND、VBIC、VEOR、VORN、VORR(レジスタ)
VORNビット単位否定論理和(疑似命令)VAND および VORN (イミディエート)
VORRビット単位論理和(レジスタ)VAND、VBIC、VEOR、VORN、VORR(レジスタ)
VORRビット単位論理和(イミディエート)VBIC および VORR (イミディエート)
VPADDVPADALペアワイズ加算、ペアワイズ加算累積VPADD{L}、VPADAL
VPMAXVPMINペアワイズ最大値、ペアワイズ最小値VMAX、VMIN、VPMAX、VPMIN
VQABS絶対値、サチュレートV{Q}ABS および V{Q}NEG
VQADD加算、サチュレートV{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL、VSUBW
VQDMLALVQDMLSLサチュレートダブル積和、積差VQDMULL、VQDMLAL、VQDMLSL(ベクタまたはスカラによる)
VQDMULLサチュレートダブル乗算VQDMULL、VQDMLAL、VQDMLSL(ベクタまたはスカラによる)
VQDMULH

上位半分を返すサチュレートダブル乗算

VQ{R}DMULH(ベクタまたはスカラによる)
VQMOV{U}Nサチュレート移動(レジスタ)VMOVL, V{Q}MOVN, VQMOVUN
VQNEG否定、サチュレートV{Q}ABS および V{Q}NEG
VQRDMULH

上位半分を返すサチュレートダブル乗算

VQ{R}DMULH(ベクタまたはスカラによる)
VQRSHL左シフト、丸め、サチュレート(符号付き変数による)V{Q}{R}SHL(符号付き変数による)
VQRSHR{U}N右シフト、丸め、サチュレート(イミディエートによる)VQ{R}SHR{U}N(イミディエートによる)
VQSHL左シフト、サチュレート(イミディエートによる)VSHL、VQSHL、VQSHLU、および VSHLL (イミディエートによる)
VQSHL左シフト、サチュレート(符号付き変数による)V{Q}{R}SHL(符号付き変数による)
VQSHR{U}N右シフト、サチュレート(イミディエートによる)VQ{R}SHR{U}N(イミディエートによる)
VQSUB減算、サチュレートV{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL、VSUBW
VRADDHN加算、上位半分の選択、丸めV{R}ADDHN および V{R}SUBHN
VRECPE逆数の推定VRECPE および VRSQRTE
VRECPS逆数のステップVRECPS および VRSQRTS
VREV要素の順番の反転VREV
VRHADD二分加算、丸めV{R}HADD および VHSUB
VRINT整数への丸めVRINT (Advanced SIMD)
VRSHR右シフトと丸め(イミディエートによる)V{R}SHR(イミディエートによる)
VRSHRN右シフト、丸め、ナロー(イミディエートによる)V{R}SHRN(イミディエートによる)
VRSQRTE逆平方根の推定VRECPE および VRSQRTE
VRSQRTS逆平方根のステップVRECPS および VRSQRTS
VRSRA右シフト、丸め、および累積(イミディエートによる)V{R}SRA(イミディエートによる)
VRSUBHN減算、上位半分の選択、丸めV{R}ADDHN および V{R}SUBHN
VSHL左シフト(イミディエートによる)VSHL、VQSHL、VQSHLU、および VSHLL (イミディエートによる)
VSHR右シフト(イミディエートによる)V{R}SHR(イミディエートによる)
VSHRN右シフト、ナロー(イミディエートによる)V{R}SHRN(イミディエートによる)
VSLI左シフトして挿入VSLI および VSRI
VSRA右シフト、累積(イミディエートによる)V{R}SRA(イミディエートによる)
VSRI右シフトして挿入VSLI および VSRI
VSTベクタストアAdvanced SIMD 要素と構造体のロード/ストア命令
VSUB減算V{Q}ADD、VADDL、VADDW、V{Q}SUB、VSUBL、VSUBW
VSUBHN減算、上位半分の選択V{R}ADDHN および V{R}SUBHN
VSWPベクタのスワップVSWP
VTBLVTBXベクタテーブルの検索VTBL、VTBX
VTRNベクタ置換VTRN
VTSTテストビットVTST
VUZPVZIPベクタのインターリーブとインターリーブの解除VUZP、VZIP

Show/hide共有 Advanced SIMD と浮動小数点命令

Table 17 では、Advanced SIMD と浮動小数点命令のセットに共通する命令の概要を示します。

Table 17. 共有 Advanced SIMD と浮動小数点命令の場所

ニーモニック概要を参照
VLDM多重ロードVLDM、VSTM、VPOP、VPUSH
VLDRロード(VLDR 疑似命令も参照)VLDR、VSTR
 ロード(ポストインクリメントとプレデクリメント)VLDR と VSTR(ポストインクリメントとプレデクリメント)
VMOV1 本の ARM レジスタから半本分のダブルワードレジスタへの転送VMOV(ARM レジスタと Advanced SIMD スカラ間)
 2 本の ARM レジスタから 1 本のダブルワードレジスタへの転送VMOV(2 本の ARM レジスタと拡張レジスタ間)
 半本分のダブルワードレジスタから 1 本の ARM レジスタへの転送VMOV(ARM レジスタと Advanced SIMD スカラ間)
 1 本のダブルワードレジスタから 2 本の ARM レジスタへの転送VMOV(2 本の ARM レジスタと拡張レジスタ間)
 単精度から ARM レジスタへの転送VMOV(1 つの ARM レジスタと単精度浮動小数点レジスタ間)
 ARM レジスタから単精度への転送VMOV(1 つの ARM レジスタと単精度浮動小数点レジスタ間)
VMRSSIMD および浮動小数点システムレジスタから ARM レジスタへの転送VMRS および VMSR
VMSRARM レジスタから SIMD および浮動小数点システムレジスタへの転送VMRS および VMSR
VPOPフル下降スタックからの浮動小数点または SIMD レジスタのポップVLDM、VSTM、VPOP、VPUSH
VPUSHフル下降スタックへの浮動小数点または SIMD レジスタのプッシュVLDM、VSTM、VPOP、VPUSH
VSTM多重ストアVLDM、VSTM、VPOP、VPUSH
VSTRストアVLDR、VSTR
 ストア(ポストインクリメントとプレデクリメント)VLDR と VSTR(ポストインクリメントとプレデクリメント)

Show/hide浮動小数点命令

Table 18 に Advanced SIMD で使用できない浮動小数点命令の概要を示します。

Note

浮動小数点ベクタモードは ARMv8 でサポートされていません。ベクタ浮動小数点には Advanced SIMD 命令を使用します。

Table 18. 浮動小数点命令の場所

ニーモニック概要を参照
VABS絶対値VABS、VNEG、VSQRT
VADD加算VADD、VSUB、VDIV
VCMP、VCMPE比較VCMP、VCMPE
VCVT単精度と倍精度間の変換VCVT(単精度と倍精度の間)
 浮動小数点と整数間の変換VCVT(浮動小数点と整数間の変換)
 浮動小数点と固定小数点間の変換VCVT(浮動小数点と固定小数点間)
 指定された丸めモードを使用した浮動小数点から整数への変換VCVT(指定された丸めモードを使用した浮動小数点から整数への変換)
VCVTBVCVTT半精度浮動小数点数と単精度浮動小数点数間の変換VCVTB、VCVTT(半精度拡張)
 半精度と倍精度間の変換VCVTB、VCVTT(半精度と倍精度の間)
VDIV除算VADD、VSUB、VDIV
VFMAVFMS結合積和、結合積差VFMA、VFMS
VFNMAVFNMS否定を伴う結合積和、否定を伴う結合積差VFNMA、VFNMS
VMAXNMVMINNM最大値、最小値、IEEE 754-2008 との互換性VMAXNM、VMINNM(浮動小数点)
VMLA積和VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VMLS積差VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VMOV単精度または倍精度レジスタへの浮動小数点イミディエート値の挿入(Table 17も参照)VMOV
VMUL乗算VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VNEG否定VABS、VNEG、VSQRT
VNMLA否定積和VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VNMLS否定積差VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VNMUL否定乗算VMUL、VMLA、VMLS、VNMUL、VNMLA、VNMLS
VRINT整数への丸めVRINT(浮動小数点)
VSEL選択VSEL
VSQRT平方根VABS、VNEG、VSQRT
VSUB減算VADD、VSUB、VDIV

Copyright © 2014 ARM. All rights reserved.ARM DUI 0802AJ
Non-ConfidentialID061814