好的.因此,我最近开始通过将我的程序重写为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包装.

Rust相关问答推荐

使用铁 rust S还原对多个数组执行顺序kronecker积

链表堆栈溢出

为什么比较Option<;字符串>;具有常数Option<&;str>;需要显式类型转换吗?

Tokio';s io::用Cursor拆分<;Vec<;u8>>;赢得';t get the full writted data

Cargo.toml:如何有条件地启用依赖项功能?

Const 上下文:从 init 函数创建具有 const 通用长度的数组

如何重命名 clap_derive 中的子命令占位符?

为什么 Rust 需要可变引用的显式生命周期而不是常规引用?

如何以与平台无关的方式将OsString转换为utf-8编码的字符串?

Rust ECDH 不会产生与 NodeJS/Javascript 和 C 实现相同的共享密钥

如何在 Rust 中将函数项变成函数指针

Rust中是否可以在不复制的情况下从另一个不可变向量创建不可变向量?

如何在 Rust 的 Hyper 异步闭包中从外部范围正确读取字符串值

从 Axum IntoResponse 获取请求标头

使用 traits 时,borrow 的值不会存在足够长的时间

Rust 中 `Option` 的内存开销不是常量

没有分号的返回表达式的性能是否比使用返回更好?在Rust ?

如何为返回正确类型的枚举实现 get 方法?

Rustfmt 是否有明确类型的选项?

基于名称是否存在的条件编译