[cfe-commits] r61327 - /cfe/trunk/lib/Headers/xmmintrin.devel.h
Anders Carlsson
andersca at mac.com
Sun Dec 21 21:20:35 PST 2008
Author: andersca
Date: Sun Dec 21 23:20:34 2008
New Revision: 61327
URL: http://llvm.org/viewvc/llvm-project?rev=61327&view=rev
Log:
Add misc intrinsics
Modified:
cfe/trunk/lib/Headers/xmmintrin.devel.h
Modified: cfe/trunk/lib/Headers/xmmintrin.devel.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/xmmintrin.devel.h?rev=61327&r1=61326&r2=61327&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/xmmintrin.devel.h (original)
+++ cfe/trunk/lib/Headers/xmmintrin.devel.h Sun Dec 21 23:20:34 2008
@@ -624,6 +624,38 @@
__builtin_ia32_ldmxcsr(i);
}
+#define _mm_shuffle_ps(a, b, mask) (__builtin_ia32_shufps(a, b, mask))
+
+static inline __m128 __attribute__((__always_inline__)) _mm_unpackhi_ps(__m128 a, __m128 b)
+{
+ return __builtin_shufflevector(a, b, 2, 6, 3, 7);
+}
+
+static inline __m128 __attribute__((__always_inline__)) _mm_unpacklo_ps(__m128 a, __m128 b)
+{
+ return __builtin_shufflevector(a, b, 0, 4, 1, 5);
+}
+
+static inline __m128 __attribute__((__always_inline__)) _mm_move_ss(__m128 a, __m128 b)
+{
+ return __builtin_shufflevector(a, b, 4, 1, 2, 3);
+}
+
+static inline __m128 __attribute__((__always_inline__)) _mm_movehl_ps(__m128 a, __m128 b)
+{
+ return __builtin_shufflevector(a, b, 6, 7, 2, 3);
+}
+
+static inline __m128 __attribute__((__always_inline__)) _mm_movelh_ps(__m128 a, __m128 b)
+{
+ return __builtin_shufflevector(a, b, 0, 1, 4, 5);
+}
+
+static inline int __attribute__((__always_inline__)) _mm_movemask_ps(__m128 a)
+{
+ return __builtin_ia32_movmskps(a);
+}
+
#endif /* __SSE__ */
#endif /* __XMMINTRIN_H */
More information about the cfe-commits
mailing list