如何用另一个变量向量置换一个rust simd向量?

kknvjkwl  于 2022-12-26  发布在  其他
关注(0)|答案(1)|浏览(110)

好的。我最近开始学习rust,把我的程序重写成rust,虽然我可能开始得太难了,因为我在rust中使用可移植的simd模块,我有着不眠之夜寻找函数使用。今天我尝试寻找一种方法来用另一个i8x16向量置换i8x16向量,就像SSE的_mm_shuffle_epi8,但遗憾的是没有找到任何东西。
请帮助我从std::simd中找到函数,以通过另一个变量向量置换向量。
最好是尽可能快,我想保持它SSE或AVX,但不是AVX2或更大。

yeotifhr

yeotifhr1#

基于此问题,尚未针对std::simd实施:Introduce "dynamic swizzling" into LLVMIR and Rust intrinsics.
现在,您将不得不求助于手动调用std::arch::{x86,x86_64}::_mm_shuffle_epi8(或您所追求的任何东西),当然,如果您希望它保持便携性,请使用cfg-wrapping。

相关问题