[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