好的。我最近开始学习rust,把我的程序重写成rust,虽然我可能开始得太难了,因为我在rust中使用可移植的simd模块,我有着不眠之夜寻找函数使用。今天我尝试寻找一种方法来用另一个i8x16向量置换i8x16向量,就像SSE的_mm_shuffle_epi8,但遗憾的是没有找到任何东西。请帮助我从std::simd中找到函数,以通过另一个变量向量置换向量。最好是尽可能快,我想保持它SSE或AVX,但不是AVX2或更大。
yeotifhr1#
基于此问题,尚未针对std::simd实施:Introduce "dynamic swizzling" into LLVMIR and Rust intrinsics.现在,您将不得不求助于手动调用std::arch::{x86,x86_64}::_mm_shuffle_epi8(或您所追求的任何东西),当然,如果您希望它保持便携性,请使用cfg-wrapping。
std::simd
std::arch::{x86,x86_64}::_mm_shuffle_epi8
cfg
1条答案
按热度按时间yeotifhr1#
基于此问题,尚未针对
std::simd
实施:Introduce "dynamic swizzling" into LLVMIR and Rust intrinsics.现在,您将不得不求助于手动调用
std::arch::{x86,x86_64}::_mm_shuffle_epi8
(或您所追求的任何东西),当然,如果您希望它保持便携性,请使用cfg
-wrapping。