【发布时间】:2021-04-25 14:53:27
【问题描述】:
是否有 AVX 或 AVX2 操作可将 16x16 位无符号整数 (uint16_t) 值的 __m256i 转换为 16x8 位无符号整数 (uint8_t) 值的 __m128i(采用饱和的低字节强>)?
有_mm256_packus_epi16(),但它使用第一个输入的前 8 个字节,然后是第二个输入的前 8 个字节,然后是第一个和第二个输入的第二个 8 个字节......导致 8 个字节的组无序。
还有一些 AVX512 操作似乎可以满足需要,但我不能依赖 AVX512,它在许多目标机器上都不存在...
【问题讨论】:
-
_mm256_permute4x64_epi64或其他改组操作之后可以修复订单吗? -
我想你的意思是
__m256i。__m256是一个单精度浮点向量。