aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEric Christopher <echristo@apple.com>2010-03-11 23:36:29 +0000
committerEric Christopher <echristo@apple.com>2010-03-11 23:36:29 +0000
commit6fa43e3aaf98afc3b337968429523e80f6e08d91 (patch)
treeed89b1f7f178d06a466cca97bc6de244bd528bef /lib
parente4c1ea0c23ce994e5d8084c6a9d41b18c803fcf3 (diff)
Add packed integer array insertion.
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@98299 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r--lib/Headers/smmintrin.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/Headers/smmintrin.h b/lib/Headers/smmintrin.h
index b3bdac6885..7bc3329300 100644
--- a/lib/Headers/smmintrin.h
+++ b/lib/Headers/smmintrin.h
@@ -199,6 +199,19 @@ _mm_max_epu32 (__m128i __V1, __m128i __V2)
/* Extract a float from X at index N into the first index of the return. */
#define _MM_PICK_OUT_PS(X, N) _mm_insert_ps (_mm_setzero_ps(), (X), \
_MM_MK_INSERTPS_NDX((N), 0, 0x0e))
+
+/* Insert int into packed integer array at index. */
+#define _mm_insert_epi8(X, I, N) (__extension__ ({ __v16qi __a = (__v16qi)X; \
+ __a[N] = I; \
+ __a;}))
+#define _mm_insert_epi32(X, I, N) (__extension__ ({ __v4si __a = (__v4si)X; \
+ __a[N] = I; \
+ __a;}))
+#ifdef __x86_64__
+#define _mm_insert_epi64(X, I, N) (__extension__ ({ __v2di __a = (__v2di)X; \
+ __a[N] = I; \
+ __a;}))
+#endif /* __x86_64__ */
#endif /* __SSE4_1__ */