[cfe-commits] r110271 - /cfe/trunk/lib/Headers/avxintrin.h

Bruno Cardoso Lopes bruno.cardoso at gmail.com
Wed Aug 4 15:56:42 PDT 2010


Author: bruno
Date: Wed Aug  4 17:56:42 2010
New Revision: 110271

URL: http://llvm.org/viewvc/llvm-project?rev=110271&view=rev
Log:
Logical AVX instrinsics can be matched directly, no need to use builtins here.

Modified:
    cfe/trunk/lib/Headers/avxintrin.h

Modified: cfe/trunk/lib/Headers/avxintrin.h
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Headers/avxintrin.h?rev=110271&r1=110270&r2=110271&view=diff
==============================================================================
--- cfe/trunk/lib/Headers/avxintrin.h (original)
+++ cfe/trunk/lib/Headers/avxintrin.h Wed Aug  4 17:56:42 2010
@@ -169,49 +169,49 @@
 static __inline __m256d __attribute__((__always_inline__, __nodebug__))
 _mm256_and_pd(__m256d a, __m256d b)
 {
-  return (__m256d)__builtin_ia32_andpd256((__v4df)a, (__v4df)b);
+  return (__m256d)((__v4df)a & (__v4df)b);
 }
 
 static __inline __m256 __attribute__((__always_inline__, __nodebug__))
 _mm256_and_ps(__m256 a, __m256 b)
 {
-  return (__m256)__builtin_ia32_andps256((__v8sf)a, (__v8sf)b);
+  return (__m256)((__v8sf)a & (__v8sf)b);
 }
 
 static __inline __m256d __attribute__((__always_inline__, __nodebug__))
 _mm256_andnot_pd(__m256d a, __m256d b)
 {
-  return (__m256d)__builtin_ia32_andnpd256((__v4df)a, (__v4df)b);
+  return (__m256d)(~(__v4df)a & (__v4df)b);
 }
 
 static __inline __m256 __attribute__((__always_inline__, __nodebug__))
 _mm256_andnot_ps(__m256 a, __m256 b)
 {
-  return (__m256)__builtin_ia32_andnps256((__v8sf)a, (__v8sf)b);
+  return (__m256)(~(__v8sf)a & (__v8sf)b);
 }
 
 static __inline __m256d __attribute__((__always_inline__, __nodebug__))
 _mm256_or_pd(__m256d a, __m256d b)
 {
-  return (__m256d)__builtin_ia32_orpd256((__v4df)a, (__v4df)b);
+  return (__m256d)((__v4df)a | (__v4df)b);
 }
 
 static __inline __m256 __attribute__((__always_inline__, __nodebug__))
 _mm256_or_ps(__m256 a, __m256 b)
 {
-  return (__m256)__builtin_ia32_orps256((__v8sf)a, (__v8sf)b);
+  return (__m256)((__v8sf)a | (__v8sf)b);
 }
 
 static __inline __m256d __attribute__((__always_inline__, __nodebug__))
 _mm256_xor_pd(__m256d a, __m256d b)
 {
-  return (__m256d)__builtin_ia32_xorpd256((__v4df)a, (__v4df)b);
+  return (__m256d)((__v4df)a ^ (__v4df)b);
 }
 
 static __inline __m256 __attribute__((__always_inline__, __nodebug__))
 _mm256_xor_ps(__m256 a, __m256 b)
 {
-  return (__m256)__builtin_ia32_xorps256((__v8sf)a, (__v8sf)b);
+  return (__m256)((__v8sf)a ^ (__v8sf)b);
 }
 
 /* Horizontal arithmetic */





More information about the cfe-commits mailing list