c – __m256i向量的随机元素

前端之家收集整理的这篇文章主要介绍了c – __m256i向量的随机元素前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想要改组__m256i向量的元素.
并且有一个内在的_mm256_shuffle_epi8,它可以做类似的事情,但它不会执行交叉通道随机播放.

如何使用AVX2指令进行操作?

解决方法

有一种方法来模拟这个操作,但它不是很漂亮:
const __m256i K0 = _mm256_setr_epi8(
    0x70,0x70,0xF0,0xF0);

const __m256i K1 = _mm256_setr_epi8(
    0xF0,0x70);

inline const __m256i Shuffle(const __m256i & value,const __m256i & shuffle)
{
    return _mm256_or_si256(_mm256_shuffle_epi8(value,_mm256_add_epi8(shuffle,K0)),_mm256_shuffle_epi8(_mm256_permute4x64_epi64(value,0x4E),K1)));
}

猜你在找的C&C++相关文章