小编sim*_*let的帖子

AVX2:AVX 寄存器中 8 位元素的 BitScanReverse 或 CountLeadingZeros

我想提取具有 8 位元素的 256 位 AVX 寄存器中最高设置位的索引。我既找不到bsr也找不到clz实现。

对于clz32 位元素,有一个带有浮点转换的 bithack,但这对于 8 位来说可能是不可能的。

目前,我正在研究一个解决方案,在那里我逐个检查位,稍后我会添加,但我想知道是否有更快的方法来做到这一点。

c++ simd intrinsics avx avx2

4
推荐指数
1
解决办法
115
查看次数

AVX2:有没有办法实现 _mm256_mul_epi8 函数的 2 的恒定幂?

我想对 8 位元素实现以下操作:

_a = _b * 8 + _c

与向量。对于加号,显然有_mm256_add_epi8但我无法找到一个_mm256_mul_epi8或其他东西与 8 位元素相乘。我也试图找到一个左移 3 的函数,但没有运气。

感谢您的帮助!

c++ simd intrinsics avx avx2

2
推荐指数
1
解决办法
77
查看次数

AVX2:AVX 寄存器中 8 位元素的 CountTrailingZeros

我想要一个类似 的函数的实现_mm256_lzcnt_epi8(__m256i a),其中对于每个 8 位元素,都会计算和提取尾随零的数量。

在上一个实现对前导零进行计数的问题中,有一个使用查找表的解决方案。我想知道是否可以使用相同的方法来实现这一点。

请仅使用 AVX 和 AVX2,并且输入的行为0可以是未定义的。

AVX2:AVX 寄存器中 8 位元素上的 BitScanReverse 或 CountLeadingZeros

感谢您的帮助!

c++ simd intrinsics avx avx2

0
推荐指数
1
解决办法
363
查看次数

标签 统计

avx ×3

avx2 ×3

c++ ×3

intrinsics ×3

simd ×3