3 ms·
Does Rust provide architecture-specific intrinsics like C/C++ toolchains usually do? That's a popular way to do SIMD.
by wyldfire 9mo ago
Does Rust provide architecture-specific intrinsics like C/C++ toolchains usually do? That's a popular way to do SIMD.
- steveklabnik 9mo agoYes https://doc.rust-lang.org/stable/std/arch/ https://doc.rust-lang.org/stable/std/arch/
- m-hilgendorf 9mo agoPeople should be aware though that without `-C target_feature=+<feature>` in your rustc flags the compiler may emit function calls to stubs for the intrinsic. So people should make sure they're passing the appropriate target features, especially when benchmarking. [0] https://godbolt.org/z/85nx44zcE https://godbolt.org/z/85nx44zcE edited: I tested gcc/clang and they just straight up fail to compile without -msse3. The generated code without optimizations is also pretty bonkers!
- wyldfire 9mo ago> compiler may emit function calls to stubs for the intrinsic. I guess the compiler itself might not know how those calls get resolved but the linker or cargo or some other mechanism might decide to include a library that provides stubs. Why would anyone ever want that behavior? nop stubs could conceivably be used in some compiler isolated (no-execution) testing scenario but I'd expect it to be opt-in.
- karavelov 9mo agoYes, in the submodules of `std::arch`