summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/emmintrin.h
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2015-11-11 08:00:41 +0000
committerCraig Topper <craig.topper@gmail.com>2015-11-11 08:00:41 +0000
commita5455524c2aa02a8f6d21819bc993f513d293831 (patch)
tree0bd614635626cf58276fbf63378b2d9627941fee /clang/lib/Headers/emmintrin.h
parent880f60b7b3c6694e377abd50ca21911192355846 (diff)
downloadbcm5719-llvm-a5455524c2aa02a8f6d21819bc993f513d293831.tar.gz
bcm5719-llvm-a5455524c2aa02a8f6d21819bc993f513d293831.zip
[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
Diffstat (limited to 'clang/lib/Headers/emmintrin.h')
-rw-r--r--clang/lib/Headers/emmintrin.h4
1 files changed, 2 insertions, 2 deletions
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
OpenPOWER on IntegriCloud