diff options
Diffstat (limited to 'vendor/packed_simd_2/perf-guide/src/target-feature/features.md')
-rw-r--r-- | vendor/packed_simd_2/perf-guide/src/target-feature/features.md | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/vendor/packed_simd_2/perf-guide/src/target-feature/features.md b/vendor/packed_simd_2/perf-guide/src/target-feature/features.md new file mode 100644 index 000000000..b93030ca6 --- /dev/null +++ b/vendor/packed_simd_2/perf-guide/src/target-feature/features.md @@ -0,0 +1,13 @@ +# Enabling target features + +Not all processors of a certain architecture will have SIMD processing units, +and using a SIMD instruction which is not supported will trigger undefined behavior. + +To allow building safe, portable programs, the Rust compiler will **not**, by default, +generate any sort of vector instructions, unless it can statically determine +they are supported. For example, on AMD64, SSE2 support is architecturally guaranteed. +The `x86_64-apple-darwin` target enables up to SSSE3. The get a defintive list of +which features are enabled by default on various platforms, refer to the target +specifications [in the compiler's source code][targets]. + +[targets]: https://github.com/rust-lang/rust/tree/master/src/librustc_target/spec |