#intel #sse #avx

nightly immintrin

Intel x86 内置函数 (_mm_*) 的实现

2个不稳定版本

使用旧Rust 2015

0.2.0 2016年7月31日
0.1.0 2016年7月12日

#11 in #avx

MIT/Apache

84KB
2.5K SLoC

immintrin

本库实现了Intel为x86架构上的SIMD和相关指令定义的名称(以_mm_为前缀的函数)。这些名称对代码移植很有用,因为人们对此很熟悉。有关讨论,请参见https://github.com/rust-lang/rfcs/issues/1639

目前包含所有SSE/SSE2/SSE2/SSSE3内置函数的签名。涉及MMX和非临时存储的内置函数尚未实现;其他所有功能都应正常工作。需要nightly编译器以支持SIMD和各种不稳定内置函数。

如果有人想改进这个库,目前最重要的事情可能是一些测试基础设施;目前,这个库没有任何测试。不一定清楚测试应该是什么样子;可能是一些检查生成的LLVM IR、检查生成的汇编代码和运行时测试的组合。

目前尚不清楚为接受常量整数的内置函数的签名应该保持原样,还是需要进行某种更改。目前,我们只是接受参数可能不是常量的事实,并确保我们生成的代码如果参数是常量的话,将得到很好的优化(例如,在_mm_slli_si128中的match语句将折叠成一条指令)。

根据Apache License 2.0或MIT许可证授权,具体取决于您。本项目中带有此类声明的所有文件,除非根据这些条款,否则不得复制、修改或分发。

依赖项

~155KB