Rust不保证其运营速度。如果您需要保证,则需要调用汇编程序。
也就是说,当前Rust转发到LLVM,所以你可以调用内在函数,它将1:1映射到LLVM内在函数并使用这些保证。但是,无论你做什么都不是asm,请注意优化器可能对你认为最优的东西有不同的看法,因此不优化你对LLVM内在函数的手动调用。
也就是说,Rust努力尽可能快,因此您可以假设(或者只是查看标准库的实现)所有具有相同LLVM内在函数的操作将映射到该LLVM内在函数,因此可以像LLVM可以做到这一点。
对于给定的基本算术运算,哪个操作最快是没有一般规则的,因为它完全取决于您的用例。
想像素处理
那么你根本不应该考虑单值操作;您想要使用SIMD指令。这些目前在稳定的Rust中不可用,但有些可通过功能门控功能访问,并且所有功能都可通过汇编获得。
是否有可能LLVM将代码优化为SIMD,就像它对clang一样?
如 aochagavia已经回复了 是的,LLVM将自动进行某些类型的代码。但是,当您要求最高性能时,通常不希望自己处于优化器的一时兴起。我倾向于希望在我的普通普通代码中进行自动向量化,然后为我的重数学内核编写直线代码,然后编写SIMD代码并测试速度的正确性和基准。