diff options
author | Craig Topper <craig.topper@gmail.com> | 2017-02-18 21:15:30 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2017-02-18 21:15:30 +0000 |
commit | 117892098ad0c54d95d37785c61db8f0d9d05dc9 (patch) | |
tree | f585276801daed91705afee96e4b83e857f2ae0a /clang/lib | |
parent | dc8a24ea4c2060f08897762524ebb85895e3de42 (diff) | |
download | bcm5719-llvm-117892098ad0c54d95d37785c61db8f0d9d05dc9.tar.gz bcm5719-llvm-117892098ad0c54d95d37785c61db8f0d9d05dc9.zip |
[X86] Replace XOP vpcmov builtins with native vector logical operations.
llvm-svn: 295570
Diffstat (limited to 'clang/lib')
-rw-r--r-- | clang/lib/Headers/xopintrin.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/clang/lib/Headers/xopintrin.h b/clang/lib/Headers/xopintrin.h index bdf0cec3264..6104bc66738 100644 --- a/clang/lib/Headers/xopintrin.h +++ b/clang/lib/Headers/xopintrin.h @@ -198,13 +198,13 @@ _mm_hsubq_epi32(__m128i __A) static __inline__ __m128i __DEFAULT_FN_ATTRS _mm_cmov_si128(__m128i __A, __m128i __B, __m128i __C) { - return (__m128i)__builtin_ia32_vpcmov((__v2di)__A, (__v2di)__B, (__v2di)__C); + return (__m128i)((__v2du)__A & (__v2du)__C) | ((__v2du)__B & ~(__v2du)__C); } static __inline__ __m256i __DEFAULT_FN_ATTRS _mm256_cmov_si256(__m256i __A, __m256i __B, __m256i __C) { - return (__m256i)__builtin_ia32_vpcmov_256((__v4di)__A, (__v4di)__B, (__v4di)__C); + return (__m256i)((__v4du)__A & (__v4du)__C) | ((__v4du)__B & ~(__v4du)__C); } static __inline__ __m128i __DEFAULT_FN_ATTRS |