From a5455524c2aa02a8f6d21819bc993f513d293831 Mon Sep 17 00:00:00 2001 From: Craig Topper Date: Wed, 11 Nov 2015 08:00:41 +0000 Subject: [X86] Use __builtin_ia32_paddq and __builtin_ia32_psubq to implement a couple intrinsics that were supposed to operate on MMX registers. Otherwise we end up operating on GPRs. Throw in a test for _mm_mul_su32 while I was there. llvm-svn: 252711 --- clang/lib/Headers/emmintrin.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'clang/lib/Headers/emmintrin.h') diff --git a/clang/lib/Headers/emmintrin.h b/clang/lib/Headers/emmintrin.h index cb216c07e94..114aa0f3511 100644 --- a/clang/lib/Headers/emmintrin.h +++ b/clang/lib/Headers/emmintrin.h @@ -647,7 +647,7 @@ _mm_add_epi32(__m128i __a, __m128i __b) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_add_si64(__m64 __a, __m64 __b) { - return __a + __b; + return (__m64)__builtin_ia32_paddq(__a, __b); } static __inline__ __m128i __DEFAULT_FN_ATTRS @@ -779,7 +779,7 @@ _mm_sub_epi32(__m128i __a, __m128i __b) static __inline__ __m64 __DEFAULT_FN_ATTRS _mm_sub_si64(__m64 __a, __m64 __b) { - return __a - __b; + return (__m64)__builtin_ia32_psubq(__a, __b); } static __inline__ __m128i __DEFAULT_FN_ATTRS -- cgit v1.2.3