diff options
| author | Ruud van Asseldonk <ruuda@google.com> | 2016-03-11 16:22:11 +0100 |
|---|---|---|
| committer | Ruud van Asseldonk <ruuda@google.com> | 2016-03-13 15:04:14 +0100 |
| commit | e1489caf0b1796db5dc5bc9946db0453838366ea (patch) | |
| tree | 9d66a6ebc5dfc858fef74f2908bb577beed93ea7 /src | |
| parent | ddfe9b6d7dff1d0e357a751229dec2db81a2267c (diff) | |
| download | rust-e1489caf0b1796db5dc5bc9946db0453838366ea.tar.gz rust-e1489caf0b1796db5dc5bc9946db0453838366ea.zip | |
Define AVX blend intrinsics
This defines the `_mm256_blendv_pd` and `_mm256_blendv_ps` intrinsics. The `_mm256_blend_pd` and `_mm256_blend_ps` intrinsics are not available as LLVM intrinsics. In Clang they are implemented using the shufflevector builtin. Intel reference: https://software.intel.com/en-us/node/524070.
Diffstat (limited to 'src')
| -rw-r--r-- | src/etc/platform-intrinsics/x86/avx.json | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/etc/platform-intrinsics/x86/avx.json b/src/etc/platform-intrinsics/x86/avx.json index 0625ac63bf1..05a4721aed8 100644 --- a/src/etc/platform-intrinsics/x86/avx.json +++ b/src/etc/platform-intrinsics/x86/avx.json @@ -9,6 +9,13 @@ "args": ["0", "0"] }, { + "intrinsic": "256_blendv_{0.data_type}", + "width": [256], + "llvm": "blendv.{0.data_type}.256", + "ret": "f(32-64)", + "args": ["0", "0", "0"] + }, + { "intrinsic": "256_broadcast_{0.data_type}", "width": [256], "llvm": "vbroadcastf128.{0.data_type}.256", |
