高通 Hexagon V65 HVX 编程参考手册(10)

高通 Hexagon V65 HVX 编程参考手册(10)

5.3 HVX/ALU-RESOURCE 续

5.3 HVX/ALU-RESOURCE 续

Average
将VU的元素添加到VV的各个元素中,然后将结果直接移动一点点。总和的中间精度大于输入数据精度。可选地,在移位之前添加圆形常数0x1。

支持未签名的字节,签名和未签名的半词以及签名的单词。复制该操作以填充已实现的数据座宽度。
在这里插入图片描述

Vv的各个元素分别减去Vu的元素,结果右移一位。总和的中间精度大于输入数据精度。将数据饱和到所需的精度。

支持无符号字节、半字和字。该操作被复制以填充实现的数据路径宽度。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

注意事项
该指令可以使用任何HVX 资源。 
此指令在Napali V1 中可能无法正常工作。

在这里插入图片描述
在这里插入图片描述

比较向量
在两个向量寄存器输入 Vu 和 Vv 之间执行比较。根据元素大小,为每对元素将适当数量的位写入向量谓词寄存器 Qd。

支持两种类型的比较:等于 (.eq) 和大于 (.gt)

支持字、有符号和无符号半字、有符号和无符号字节的比较。

对于每个元素比较,目标寄存器中的相应位数是:字节一位,半字两位,字四位。

可选择支持与目标的 XOR(^)、与目标的 AND(&) 和与目标的 OR(|)。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注意 该指令可以使用任何 HVX 资源。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

条件累加
有条件地向目标寄存器添加或减去一个值。如果在向量谓词寄存器中设置了相应的位,则 Vu 中的元素被添加到 Vx 中的相应元素或从中减去。支持字节、半字和字。不对结果执行饱和。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

复用器选择
执行并行的 if-then-else 操作。基于向量谓词寄存器中的谓词位,如果该位被设置,则来自向量寄存器Vu的相应字节被放置在目标向量寄存器Vd中。否则,写入来自 Vv 的相应字节。该操作适用于字节,因此它可以处理所有数据大小。
在这里插入图片描述
在这里插入图片描述

Saturation
在两个向量 Vu 和 Vv 的元素之间执行简单的算术运算,即加法和减法。支持字、半字(有符号和无符号)和字节(有符号和无符号)。

可选地饱和字和半字。对于无符号类型总是饱和。

在这里插入图片描述
在这里插入图片描述

In-lane shuffle
分别将两个向量寄存器中的偶数或奇数元素洗牌到一个目标向量寄存器中。支持字节和半字。
在这里插入图片描述
这组洗牌仅限于字节和半字。

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_38498942/article/details/129580861