diff options
| author | Ruud van Asseldonk <ruuda@google.com> | 2016-03-08 21:41:18 +0100 |
|---|---|---|
| committer | Ruud van Asseldonk <ruuda@google.com> | 2016-03-09 01:18:46 +0100 |
| commit | 37efeae8866c3c4d9827d0ca271b8e27f731c3e1 (patch) | |
| tree | 09f10eaabf92db271df0b618cad0af4b26051541 /src/libstd/sys/unix/stack_overflow.rs | |
| parent | 8f0479b2a5fc16814b68efe9e87dddf231b8941d (diff) | |
| download | rust-37efeae8866c3c4d9827d0ca271b8e27f731c3e1.tar.gz rust-37efeae8866c3c4d9827d0ca271b8e27f731c3e1.zip | |
Define AVX broadcast intrinsics
This defines `_mm256_broadcast_ps` and `_mm256_broadcast_pd`. The `_ss` and `_sd` variants are not supported by LLVM. In Clang these intrinsics are implemented as inline functions in C++. Intel reference: https://software.intel.com/en-us/node/514144. Note: the argument type should really be "0hPc" (a pointer to a vector of half the width), but internally the LLVM intrinsic takes a pointer to a signed integer, and for any other type LLVM will complain. This means that a transmute is required to call these intrinsics. The AVX2 broadcast intrinsics `_mm256_broadcastss_ps` and `_mm256_broadcastsd_pd` are not available as LLVM intrinsics. In Clang they are implemented using the shufflevector builtin.
Diffstat (limited to 'src/libstd/sys/unix/stack_overflow.rs')
0 files changed, 0 insertions, 0 deletions
