0

我正在查看 AVX 指令指南,虽然有 32 位整数值的加载、存储和置换操作,但其他操作(例如确定最小值或最大值)或随机操作仅适用于浮点数和双精度数。

因此,如果我想将这些操作用于 32 位整数,我是否需要将其类型转换为浮点数,然后再将其类型转换回来,或者是否还有其他一些我遗漏的指令?

此外,如果我想在 32 位整数上使用它,洗牌掩码是否与浮点数一样?

4

1 回答 1

2

32B 向量的大部分整数运算都在 AVX2 扩展中(不是最初的 AVX 扩展,它几乎完全是浮点运算)。英特尔最新的AVX 编程参考具有完整的详细信息;您可能还想查看英特尔宣布一些细节的博客文章。

不幸的是,您不能使用浮点最小或最大操作来模拟整数数据上的这些操作,因为当解释为浮点数据时,大量整数映射到 NaN 值,并且 NaN 比较的语义不做什么您需要进行整数比较(您还需要处理浮点编码是符号大小的事实,因此负值的顺序是“反转的”,并且 +0 和 -0 比较相等)。

于 2012-12-13T22:26:49.043 回答