c++ - _mm256_permutexvar_epi8 和 _mm256_permutexvar_epi16 AVX2 等价物用于编译时间常数洗牌吗?
问题描述
我正在寻找一种使用 AVX2 指令置换寄存器中的 1 字节和/或 2 字节值的方法。__m256i
该解决方案需要能够跨 128 位通道移动值。
我知道我可以使用 AVX512 _mm256_permutexvar_epi8
,_mm256_permutexvar_epi16
但我似乎无法找到任何使用 AVX2 的通用解决方案,用于当值需要跨越车道时(如果值可以保持在车道内_mm256_shuffle_epi8
或_mm256_shuflehi_epi16(_mm256_shufflelo_epi16)
工作)。
排列索引将在编译时已知。
解决方案
推荐阅读
- java - 从 server.xml 按名称读取变量
- python - 两个列表具有不同的内存地址,但仍被引用
- python - 在 Anaconda Windows 安装下运行 reticulate 的问题
- uitableview - 如何在 Swift 5 中将数据从 UITableViewCell 发送到 ViewController
- python - Windows 中车轮构建再现性的当前状态是什么?
- php - 从 ionic 3 应用程序到 php 服务器的连接错误(导出和导入 mysql)
- java - Jackson - 将 JSON 反序列化为类
- javascript - 在 react Native 中使用外部 API 呈现 Flatlist 的正确方法
- python - 熊猫在列表中正确的值
- java - 为 netbeans 8.2 运行 SQL 时出现词法错误