arm NEON 数据类型中的 I8未指定类型的整数是什么?

问题描述

NEON 数据类型中的整数

输入 8-bit 16 位
无符号整数 U8 U16
有符号整数 S8 S16
未指定类型的整数 I8 I16

I8S8 有什么区别?

解决方法

评论已经描述了它们,Peter Cordes 完美地总结了这个想法:

大概适用于 shuffle 或二进制加法等操作 / 减法,其中运算对于有符号或 未签名


集中回答Neon的指令集,大部分指令只接受特定的数据类型,规则是:

  • I 有效时,SU 也是
  • 仅指定数据大小时,USI 有效(还有 P 和 F)
  • 有些指令会忽略数据类型
  • 当没有数据类型时,任何一种都有效

很容易知道哪些指令将指定数据类型,即:

  • 为了获得绝对值,VABS只接受 S 类型(注意它也允许 F32)。

  • 有些指令接受 I,因此它们也接受 SU,例如按位 AND (VAND)。