Hexagon_V65_Programmers_Reference_Manual(43)

Hexagon_V65_Programmers_Reference_Manual(43)

      • 11.10.6 XTYPE/PERM
        • 11.10.6.1 CABAC 解码箱(CABAC decode bin)
        • 11.10.6.2 饱和(Saturate)
        • 11.10.6.3 调配字节(Swizzle bytes)
        • 11.10.6.4 矢量对齐(Vector align)
        • 11.10.6.5 矢量舍入和打包(Vector round and pack)
        • 11.10.6.6 矢量饱和和打包(Vector saturate and pack)
        • 11.10.6.7 无包矢量饱和(Vector saturate without pack)

11.10.6 XTYPE/PERM

XTYPE/PERM 指令子类包括执行置换的指令。

11.10.6.1 CABAC 解码箱(CABAC decode bin)

这是支持 H.264 上下文自适应二进制算术编码 (CABAC) 的专用指令。

Hexagon_V65_Programmers_Reference_Manual(43)_第1张图片

Class: XTYPE (slots 2,3)
Notes
此指令生成的谓词不能用作.new 谓词,也不能自动与另一个谓词进行AND’d。

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第2张图片

11.10.6.2 饱和(Saturate)

饱和单个标量值。

sath 将带符号的 32 位数字饱和为带符号的 16 位数字,然后将其符号扩展回 32 位并放置在目标寄存器中。 结果的最小负值为 0xffff8000,最大正值为 0x00007fff。

stuh 将带符号的 32 位数字饱和为无符号的 16 位数字,然后将其零扩展回 32 位并放置在目标寄存器中。 结果的最小值为0,最大值为0x0000ffff。

satb 将带符号的 32 位数字饱和为带符号的 8 位数字,然后将其符号扩展回 32 位并放置在目标寄存器中。 结果的最小值为 0xffffff80,最大值为 0x0000007f。

satub 将一个有符号的 32 位数字饱和为一个无符号的 8 位数字,该数字被零扩展回 32 位并放置在目标寄存器中。 结果的最小值为0,最大值为0x000000ff。

Hexagon_V65_Programmers_Reference_Manual(43)_第3张图片

Class: XTYPE (slots 2,3)
Notes
如果在执行该指令期间发生饱和(结果被钳制为最大值或最小值),则设置状态寄存器中的 OVF 位。 OVF 保持设置,直到通过传输到 SR 明确清除。
Intrinsics
Hexagon_V65_Programmers_Reference_Manual(43)_第4张图片

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第5张图片

11.10.6.3 调配字节(Swizzle bytes)

Swizzle 一个单词的字节。 该指令对于在小端格式和大端格式之间进行转换很有用。
Hexagon_V65_Programmers_Reference_Manual(43)_第6张图片

Class: XTYPE (slots 2,3)
Intrinsics
在这里插入图片描述
Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第7张图片

11.10.6.4 矢量对齐(Vector align)

对齐一个向量。 使用立即数或谓词寄存器的最低有效 3 位作为要对齐的字节数。 将 Rss 寄存器对右移此字节数。 用 Rtt 中最不重要的元素填充空出的位置。
Hexagon_V65_Programmers_Reference_Manual(43)_第8张图片

Class: XTYPE (slots 2,3)
Intrinsics

在这里插入图片描述

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第9张图片
在这里插入图片描述

11.10.6.5 矢量舍入和打包(Vector round and pack)

将常数 0x00008000 添加到 64 位源向量 Rss 中的每个字。 可以选择将此加法饱和到 32 位。 将结果的高半字打包到 32 位目标寄存器的相应半字中。

Hexagon_V65_Programmers_Reference_Manual(43)_第10张图片

Class: XTYPE (slots 2,3)
Notes
如果在执行该指令期间发生饱和(结果被钳制为最大值或最小值),则设置状态寄存器中的 OVF 位。 OVF 保持设置,直到通过传输到 SR 明确清除。
Intrinsics
在这里插入图片描述

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第11张图片

11.10.6.6 矢量饱和和打包(Vector saturate and pack)

对于向量中的每个元素,将值饱和到下一个较小的大小。 VSATHUB 将有符号半字饱和到无符号字节,而 VSATHB 将有符号半字饱和到有符号字节。
Hexagon_V65_Programmers_Reference_Manual(43)_第12张图片
Hexagon_V65_Programmers_Reference_Manual(43)_第13张图片

Class: XTYPE (slots 2,3)
Notes
如果在执行该指令期间发生饱和(结果被钳制为最大值或最小值),则设置状态寄存器中的 OVF 位。 OVF 保持设置,直到通过传输到 SR 明确清除。
Intrinsics
Hexagon_V65_Programmers_Reference_Manual(43)_第14张图片

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第15张图片
在这里插入图片描述

11.10.6.7 无包矢量饱和(Vector saturate without pack)

将源向量 Rss 的每个元素饱和到下一个较小的大小。 VSATHUB 将有符号半字饱和到无符号字节。 VSATWH 将有符号字饱和到有符号半字,而 VSATWUH 将有符号字饱和到无符号半字。 结果值以解包形式放置在目标寄存器 Rdd 中。
Hexagon_V65_Programmers_Reference_Manual(43)_第16张图片

Class: XTYPE (slots 2,3)
Notes
如果在执行该指令期间发生饱和(结果被钳制为最大值或最小值),则设置状态寄存器中的 OVF 位。 OVF 保持设置,直到通过传输到 SR 明确清除。
Intrinsics
在这里插入图片描述

Encoding
Hexagon_V65_Programmers_Reference_Manual(43)_第17张图片

你可能感兴趣的:(简介,Snapdragon异构计算,异构计算相关,dsp开发,c语言)