【NEON 和 VFP 编程】NEON移位指令

本节包括以下小节:

• 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 对于

猜你喜欢

转载自blog.csdn.net/tyyj90/article/details/103041905