NEON固有的算术移位

时间:2013-09-13 11:15:34

标签: bit-shift neon intrinsics

我想使用编译器内在函数在NEON寄存器上执行SIMD算术右移(即在符号位中移位)一个恒定量。然而,在documentation中提到的所有转移内在函数中,我找不到这种特殊的转变。 NEON甚至支持算术移位(但是,如果没有这样做会很奇怪)而且我太笨了而无法找到它(或者我正在寻找错误的术语)?或者它可能只是正常的vshr(q)_n内在因素,而这种转变是由所用实际类型的签名决定的?

1 个答案:

答案 0 :(得分:1)

啊,转向ARM-NEON。标志很容易错过。

当然有一个算术右移指令,它与逻辑右移指令相同。您可以通过选择数据类型来决定是否要移动算术或逻辑。

E.g。

  int8x8_t   vshr_n_s8(int8x8_t a, int b);

将移位算术,因为数据类型是s8而:

  uint8x8_t   vshr_n_u8(uint8x8_t a, int b);

将逻辑移位(以零填充而不是复制符号位),因为数据类型是无符号的。