summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/mmintrin.h
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2016-05-16 06:38:42 +0000
committerCraig Topper <craig.topper@gmail.com>2016-05-16 06:38:42 +0000
commit1aa231e3aaf2c2f4cbf73f2d02b896c05d072cdb (patch)
tree042ff41c566a6274df3abcd65ac6b897ee50e0f0 /clang/lib/Headers/mmintrin.h
parent9c6c85f1ade89a94fe900fed7f83b509e6194c62 (diff)
downloadbcm5719-llvm-1aa231e3aaf2c2f4cbf73f2d02b896c05d072cdb.tar.gz
bcm5719-llvm-1aa231e3aaf2c2f4cbf73f2d02b896c05d072cdb.zip
[X86] Add typecasts to remove most assumptions about what __m128i/__m256i is defined as. Add similar typecasts for the fp types as well.
llvm-svn: 269632
Diffstat (limited to 'clang/lib/Headers/mmintrin.h')
-rw-r--r--clang/lib/Headers/mmintrin.h17
1 files changed, 9 insertions, 8 deletions
diff --git a/clang/lib/Headers/mmintrin.h b/clang/lib/Headers/mmintrin.h
index 162cb1aa171..bb734caae0c 100644
--- a/clang/lib/Headers/mmintrin.h
+++ b/clang/lib/Headers/mmintrin.h
@@ -26,6 +26,7 @@
typedef long long __m64 __attribute__((__vector_size__(8)));
+typedef long long __v1di __attribute__((__vector_size__(8)));
typedef int __v2si __attribute__((__vector_size__(8)));
typedef short __v4hi __attribute__((__vector_size__(8)));
typedef char __v8qi __attribute__((__vector_size__(8)));
@@ -246,13 +247,13 @@ _mm_slli_pi32(__m64 __m, int __count)
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_sll_si64(__m64 __m, __m64 __count)
{
- return (__m64)__builtin_ia32_psllq(__m, __count);
+ return (__m64)__builtin_ia32_psllq((__v1di)__m, __count);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_slli_si64(__m64 __m, int __count)
{
- return (__m64)__builtin_ia32_psllqi(__m, __count);
+ return (__m64)__builtin_ia32_psllqi((__v1di)__m, __count);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
@@ -306,37 +307,37 @@ _mm_srli_pi32(__m64 __m, int __count)
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_srl_si64(__m64 __m, __m64 __count)
{
- return (__m64)__builtin_ia32_psrlq(__m, __count);
+ return (__m64)__builtin_ia32_psrlq((__v1di)__m, __count);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_srli_si64(__m64 __m, int __count)
{
- return (__m64)__builtin_ia32_psrlqi(__m, __count);
+ return (__m64)__builtin_ia32_psrlqi((__v1di)__m, __count);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_and_si64(__m64 __m1, __m64 __m2)
{
- return __builtin_ia32_pand(__m1, __m2);
+ return __builtin_ia32_pand((__v1di)__m1, (__v1di)__m2);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_andnot_si64(__m64 __m1, __m64 __m2)
{
- return __builtin_ia32_pandn(__m1, __m2);
+ return __builtin_ia32_pandn((__v1di)__m1, (__v1di)__m2);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_or_si64(__m64 __m1, __m64 __m2)
{
- return __builtin_ia32_por(__m1, __m2);
+ return __builtin_ia32_por((__v1di)__m1, (__v1di)__m2);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
_mm_xor_si64(__m64 __m1, __m64 __m2)
{
- return __builtin_ia32_pxor(__m1, __m2);
+ return __builtin_ia32_pxor((__v1di)__m1, (__v1di)__m2);
}
static __inline__ __m64 __DEFAULT_FN_ATTRS
OpenPOWER on IntegriCloud