]> granicus.if.org Git - clang/commitdiff
_mm_xor_ps does a xor not a nxor. The other 'xor' builtins look fine,
authorChris Lattner <sabre@nondot.org>
Thu, 7 Jan 2010 00:36:41 +0000 (00:36 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 7 Jan 2010 00:36:41 +0000 (00:36 +0000)
but this one is wrong.  Thanks to Tanya for noticing this.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@92881 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Headers/xmmintrin.h

index 5d2bcbb98ca0c1ec6e60a69ee84cedca5c6d52db..e27060295a814a2290bd044629dc22248584c32d 100644 (file)
@@ -172,7 +172,7 @@ static inline __m128 __attribute__((__always_inline__, __nodebug__))
 _mm_xor_ps(__m128 a, __m128 b)
 {
   typedef int __v4si __attribute__((__vector_size__(16)));
-  return (__m128)((__v4si)a ^ ~(__v4si)b);
+  return (__m128)((__v4si)a ^ (__v4si)b);
 }
 
 static inline __m128 __attribute__((__always_inline__, __nodebug__))