本节包括以下小节:
• VABS、VNEG 和 VSQRT
浮点绝对值、求反和平方根。
• VADD、VSUB 和 VDIV
浮点加法、减法和除法。
• VMUL、VMLA、VMLS、VNMUL、VNMLA 和 VNMLS
浮点乘法和乘加,包含可选求反。
• VCMP
浮点数比较。
• VCVT(在单精度数和双精度数之间)
在单精度数和双精度数之间转换。
• VCVT(在浮点数和整数之间)
在浮点数和整数之间转换。
• VCVT(在浮点数和定点数之间)
在浮点数和定点数之间转换。
• VMOV
将浮点常数插入单精度或双精度寄存器。
一 VABS、VNEG 和 VSQRT
浮点绝对值、求反和平方根。
这些指令可以是标量、向量或混合型。
语法
Vop{cond}.F32 Sd, Sm
Vop{cond}.F64 Dd, Dm
其中:
op 是 ABS、NEG 或 SQRT 之一。
cond 是一个可选的条件代码。
Sd、Sm 是用于存放结果和操作数的单精度寄存器。
Dd、Dm 是用于存放结果和操作数的双精度寄存器。
用法
VABS 指令获取 Sm 或 Dm 的内容,清除符号位并将结果存放到 Sd 或 Dd 中。 这样就得到绝对值。
VNEG 指令获取 Sm 或 Dm 的内容,更改符号位,并将结果存放到 Sd 或 Dd 中。 这样就得到与原有值符号相反的值。
VSQRT 指令获取 Sm 或 Dm 的内容的平方根,并将结果存放到 Sd 或 Dd 中。
对于 VABS 和 VNEG 指令,如果操作数为非数字,则符号位的确定视根据上述各个情况而定,但不会产生异常。