diff options
| author | Craig Topper <craig.topper@gmail.com> | 2011-12-19 09:03:48 +0000 |
|---|---|---|
| committer | Craig Topper <craig.topper@gmail.com> | 2011-12-19 09:03:48 +0000 |
| commit | a557e1c12213038116c7a33faab822c1fa66a0be (patch) | |
| tree | 00f334e09d3ceb28a7631e7047e368d561af2d26 /clang/lib | |
| parent | 2a8bc15230a128c8492cf0e0abbbb6b5e914c89c (diff) | |
| download | bcm5719-llvm-a557e1c12213038116c7a33faab822c1fa66a0be.tar.gz bcm5719-llvm-a557e1c12213038116c7a33faab822c1fa66a0be.zip | |
Add AVX2 intrinsics for and, andn, or, and xor.
llvm-svn: 146862
Diffstat (limited to 'clang/lib')
| -rw-r--r-- | clang/lib/Headers/avx2intrin.h | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/clang/lib/Headers/avx2intrin.h b/clang/lib/Headers/avx2intrin.h index e4f1e14c909..df0450d7d14 100644 --- a/clang/lib/Headers/avx2intrin.h +++ b/clang/lib/Headers/avx2intrin.h @@ -124,6 +124,24 @@ _mm256_adds_epu16(__m256i a, __m256i b) (__m256i)__builtin_ia32_palignr256((__v32qi)__a, (__v32qi)__b, (n)); }) static __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) +_mm256_and_si256(__m256i a, __m256i b) +{ + return a & b; +} + +static __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) +_mm256_andnot_si256(__m256i a, __m256i b) +{ + return ~a & b; +} + +static __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) +_mm256_or_si256(__m256i a, __m256i b) +{ + return a | b; +} + +static __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) _mm256_sub_epi8(__m256i a, __m256i b) { return (__m256i)((__v32qi)a - (__v32qi)b); @@ -171,3 +189,8 @@ _mm256_subs_epu16(__m256i a, __m256i b) return (__m256i)__builtin_ia32_psubusw256((__v16hi)a, (__v16hi)b); } +static __inline__ __m256i __attribute__((__always_inline__, __nodebug__)) +_mm256_xor_si256(__m256i a, __m256i b) +{ + return a ^ b; +} |

