好的。所以我最近开始学习Rust,通过将我的程序重写为Rust来学习。尽管我可能从一开始就太难了,因为我正在使用Rust中的可移植simd模块,并且我正在度过不安静的晚上寻找要使用的函数。今天,我尝试寻找一种方法来通过另一个i8x16向量重新排列i8x16向量,就像SSE中的_mm_shuffle_epi8一样,但是很遗憾没有找到任何有用的内容。
请帮我找到从std::simd中使用另一个变量向量进行排列的函数。
最好尽可能快,并且我想保持SSE或AVX,但不包括AVX2或更大。
根据此问题,对于std::simd
尚未实现:在LLVMIR和Rust内部引入“动态切换”。
目前,您需要手动调用std::arch::{x86,x86_64}::_mm_shuffle_epi8
(或其他您需要的函数),当然如果您希望它具有可移植性,则需要进行cfg
包装。