VSHL、VQSHL、VQSHLU、および VSHLL (イミディエートによる)

ベクタ左シフト(イミディエートによる)命令は、整数ベクタの各要素を取得し、イミディエート値で左にシフトして、デスティネーションベクタに結果を返します。

VSHL(ベクタ左シフト)では、各要素の左の範囲外にシフトされたビットは失われます。

VQSHL(ベクタサチュレート左シフト)と VQSHLU(ベクタサチュレート左シフト符号なし)では、サチュレーションが発生するとスティッキー QC フラグ(FPSCR ビット [27])が設定されます。

VSHLL(ベクタ左シフト Long)では、値は符号拡張またはゼロ拡張されます。

Figure 11 は、2 つの要素と 1 つのシフト値を持つ VSHL の演算を示しています。デスティネーションベクタの各要素の最下位ビットはゼロに設定されます。

Figure 11. クワッドワード VSHL.64 Qd, Qm, #1 の演算

To view this graphic, your browser must support the SVG format. Either install a browser with native support, or install an appropriate plugin such as Adobe SVG Viewer.


Show/hide構文

V{Q}SHL{U}{cond}.datatype {Qd}, Qm, #imm
V{Q}SHL{U}{cond}.datatype {Dd}, Dm, #imm
VSHLL{cond}.datatype Qd, Dm, #imm

各項目には以下の意味があります。

Q

このパラメータが指定されている場合、オーバーフローした結果はサチュレートされます。

U

Q も指定されている場合にのみ使用できます。オペランドに符号が付いても結果には符合が付きません。

cond

任意の条件コードを指定します。

datatype

以下のいずれかを指定します。

I8I16I32I64

VSHL の場合

S8S16S32

VSHLLVQSHL、または VQSHLU の場合

U8U16U32

VSHLL または VQSHL の場合

S64

VQSHL または VQSHLU の場合

U64

VQSHL の場合

Qd, Qm

クワッドワード演算で使用するデスティネーションベクタとオペランドベクタを指定します。

Dd, Dm

ダブルワード演算で使用するデスティネーションベクタとオペランドベクタを指定します。

Qd, Dm

long 演算で使用するデスティネーションベクタとオペランドベクタを指定します。

imm

以下の範囲でシフトのサイズを指定するイミディエート値です。

  • VSHLL の場合、1 ~(datatype サイズ(ビット数))。

  • VSHLVQSHL、または VQSHLU の場合、0 ~(datatype - 1 サイズ(ビット数))

VSHLL の場合、0 を使用できますが、生成されるコードは VMOVL に逆アセンブルされます。

Show/hide関連項目

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