本节包括以下小节:
• VSHL、VQSHL、VQSHLU 和 VSHLL(按立即数)
按立即值左移。
• V{Q}{R}SHL(按有符号变量)
按有符号变量左移。
• V{R}SHR{N}、V{R}SRA(按立即数)
按立即值右移。
• VQ{R}SHR{U}N(按立即数)
按立即值右移并进行饱和。
• VSLI 和 VSRI
左移并插入,右移并插入。
一、VSHL、VQSHL、VQSHLU 和 VSHLL(按立即数)
向量左移、向量饱和左移和向量长型左移。
这些指令获取整数向量中的每个元素,按立即值对其进行左移,并将结果存放到目标向量中。
对于 VSHL,每个元素中从左侧移出的位将丢失。
对于 VQSHL 和 VQSHLU,在进行饱和的情况下将设置粘性 QC 标记(FPSCR 位[27])。
对于 VSHLL,将用符号或零对值进行扩展。
语法
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 必须是下列值之一:
I8、I16、I32、I64 对于 VSHL
S8、S16、S32 对于 VSHLL、VQSHL 或 VQSHLU
U8、U16、U32 对于 VSHLL 或 VQSHL
S64 对于 VQSHL 或 VQSHLU
U64 对于