好的.因此,我最近开始通过将我的程序重写为Rust来学习Rust,尽管我可能开始时太努力了,因为我在Rust中使用了便携式SIMD模块,而且我晚上都在寻找要使用的函数.今天,我try 寻找一种方法将i8x16向量置换为另一个i8x16向量,就像SSE中的a_mm_ashffle_ep8一样,但遗憾的是什么都没有找到.
请帮我从std::SIMD中找到要用另一个变量向量置换向量的函数.
最好是越快越好,我想保持SSE或AVX,但不是AVX2或更大.
好的.因此,我最近开始通过将我的程序重写为Rust来学习Rust,尽管我可能开始时太努力了,因为我在Rust中使用了便携式SIMD模块,而且我晚上都在寻找要使用的函数.今天,我try 寻找一种方法将i8x16向量置换为另一个i8x16向量,就像SSE中的a_mm_ashffle_ep8一样,但遗憾的是什么都没有找到.
请帮我从std::SIMD中找到要用另一个变量向量置换向量的函数.
最好是越快越好,我想保持SSE或AVX,但不是AVX2或更大.
基于这个问题,std::simd
:Introduce "dynamic swizzling" into LLVMIR and Rust intrinsics还没有实施.
目前,你将不得不求助于手动拨打std::arch::{x86,x86_64}::_mm_shuffle_epi8
(或任何你想要的),当然,如果你想让它保持便携,还可以用cfg
包装.