diff options
author | Craig Topper <craig.topper@gmail.com> | 2016-10-22 18:32:33 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2016-10-22 18:32:33 +0000 |
commit | 993ddd78d83e6aa59cbace534d6a6df3dfc3091c (patch) | |
tree | ff9553b17cdf6c5586e97305d93e8d989b3ef806 /lib/Headers/avx512vlbwintrin.h | |
parent | fdc43f787065f7a6259544fa49f3a01e2b86bddd (diff) |
[AVX-512] Remove masked 128/256-bit palignr builtins. We can just use a select in the header file with the older unmasked versions instead.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284920 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Headers/avx512vlbwintrin.h')
-rw-r--r-- | lib/Headers/avx512vlbwintrin.h | 28 |
1 files changed, 12 insertions, 16 deletions
diff --git a/lib/Headers/avx512vlbwintrin.h b/lib/Headers/avx512vlbwintrin.h index ff4528500d..b6c2c9a996 100644 --- a/lib/Headers/avx512vlbwintrin.h +++ b/lib/Headers/avx512vlbwintrin.h @@ -3313,28 +3313,24 @@ _mm256_mask_permutexvar_epi16 (__m256i __W, __mmask16 __M, __m256i __A, } #define _mm_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \ - (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(N), \ - (__v16qi)(__m128i)(W), \ - (__mmask16)(U)); }) + (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ + _mm_alignr_epi8((A), (B), (int)(N)), \ + (__v16qi)(__m128i)(W)); }) #define _mm_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \ - (__m128i)__builtin_ia32_palignr128_mask((__v16qi)(__m128i)(A), \ - (__v16qi)(__m128i)(B), (int)(N), \ - (__v16qi)_mm_setzero_si128(), \ - (__mmask16)(U)); }) + (__m128i)__builtin_ia32_selectb_128((__mmask16)(U), \ + _mm_alignr_epi8((A), (B), (int)(N)), \ + (__v16qi)_mm_setzero_si128()); }) #define _mm256_mask_alignr_epi8(W, U, A, B, N) __extension__ ({ \ - (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \ - (__v32qi)(__m256i)(B), (int)(N), \ - (__v32qi)(__m256i)(W), \ - (__mmask32)(U)); }) + (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ + _mm256_alignr_epi8((A), (B), (int)(N)), \ + (__v32qi)(__m256i)(W)); }) #define _mm256_maskz_alignr_epi8(U, A, B, N) __extension__ ({ \ - (__m256i)__builtin_ia32_palignr256_mask((__v32qi)(__m256i)(A), \ - (__v32qi)(__m256i)(B), (int)(N), \ - (__v32qi)_mm256_setzero_si256(), \ - (__mmask32)(U)); }) + (__m256i)__builtin_ia32_selectb_256((__mmask32)(U), \ + _mm256_alignr_epi8((A), (B), (int)(N)), \ + (__v32qi)_mm256_setzero_si256()); }) #define _mm_dbsad_epu8(A, B, imm) __extension__ ({ \ (__m128i)__builtin_ia32_dbpsadbw128_mask((__v16qi)(__m128i)(A), \ |