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

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

5.8 HVX/MPY-DOUBLE-RESOURCE

HVX/MPY-DOUBLE-RESOURCE 指令子类包括使用两种 HVX 乘法资源的指令。

Arithmetic widening
添加或减去向量寄存器 Vu 和 Vv 的元素。结果元素的宽度是输入大小的两倍,以捕获结果中的任何数据增长。结果放在双向量寄存器中。

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

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

Multiply with two-wide reduction
将来自 Vu 的元素乘以标量寄存器 Rt 中的相应元素。成对添加产品以减少二分之一。乘积可选择与 Vx 累加,累加后可选择饱和。

支持无符号字节乘字节、半字乘有符号字节和半字乘半字。双向量版本执行滑动窗口双向缩减,其中奇数寄存器输出包含偏移计算。
在这里插入图片描述
在这里插入图片描述

将向量寄存器 Vu 中的半字元素乘以向量寄存器 Vv 中相应的半字元素。乘积成对相加以形成 32 位宽的总和。该和可选择地与矢量寄存器目标 Vx 累加,然后饱和到 32 位。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Lookup table for piecewise from 64-bit scalar
vlut4 指令实现了一个在标量寄存器对 Rtt 中指定的四条目查找表。
在这里插入图片描述

Multiply with piecewise add/sub from 64-bit scalar
帮助非线性函数计算的说明。
在这里插入图片描述
在这里插入图片描述

扫描二维码关注公众号,回复: 14804627 查看本文章

Multiply - add
计算两个字节相乘的和。这两个产品由来自向量寄存器 Vuu 和 Vvv 的无符号字节或有符号半字组成。这些乘以来自标量寄存器 Rt 的带符号字节。求和的结果是一个带符号的半字或字。 Vuu 和 Vvv 中的每一对对应元素都被加权,偶数元素使用 Rt.b[0] 和 Rt.b[1],奇数元素使用 Rt.b[2] 和 Rt.b[3]。

可选择累加目标向量寄存器 Vxx 的乘积。

对于逐个向量,计算两个字节乘法的总和。这两个乘积由一个无符号字节向量操作数乘以一个有符号字节标量组成。求和的结果是一个带符号的半字。来自输入向量寄存器对 Vuu 和 Vvv 的偶数元素相乘在一起并放置在 Vdd 的偶数寄存器中。奇数元素放在Vdd的奇数寄存器中。

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

猜你喜欢

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