[llvm-commits] [llvm-gcc-4.2] r48785 - in /llvm-gcc-4.2/trunk/gcc: config/i386/emmintrin.h config/i386/tmmintrin.h testsuite/gcc.apple/5814283.c

Bill Wendling isanbard at gmail.com
Tue Mar 25 11:41:10 PDT 2008


Author: void
Date: Tue Mar 25 13:41:10 2008
New Revision: 48785

URL: http://llvm.org/viewvc/llvm-project?rev=48785&view=rev
Log:
Missing parentheses in macros.

Added:
    llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/5814283.c
Modified:
    llvm-gcc-4.2/trunk/gcc/config/i386/emmintrin.h
    llvm-gcc-4.2/trunk/gcc/config/i386/tmmintrin.h

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/emmintrin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/emmintrin.h?rev=48785&r1=48784&r2=48785&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/emmintrin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/emmintrin.h Tue Mar 25 13:41:10 2008
@@ -1108,7 +1108,8 @@
   return (__m128d)__builtin_ia32_cvtss2sd ((__v2df) __A, (__v4sf)__B);
 }
 
-#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)__A, (__v2df)__B, (__C)))
+/* APPLE LOCAL 5814283 */
+#define _mm_shuffle_pd(__A, __B, __C) ((__m128d)__builtin_ia32_shufpd ((__v2df)(__A), (__v2df)(__B), (__C)))
 
 /* APPLE LOCAL begin radar 5618945 */
 __STATIC_INLINE __m128d __attribute__((__always_inline__))
@@ -1753,9 +1754,11 @@
   return (__m128i)__builtin_ia32_pmulhuw128 ((__v8hi)__A, (__v8hi)__B);
 }
 
-#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)__A, __B))
-#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)__A, __B))
-#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)__A, __B))
+/* APPLE LOCAL begin 5814283 */
+#define _mm_shufflehi_epi16(__A, __B) ((__m128i)__builtin_ia32_pshufhw ((__v8hi)(__A), (__B)))
+#define _mm_shufflelo_epi16(__A, __B) ((__m128i)__builtin_ia32_pshuflw ((__v8hi)(__A), (__B)))
+#define _mm_shuffle_epi32(__A, __B) ((__m128i)__builtin_ia32_pshufd ((__v4si)(__A), (__B)))
+/* APPLE LOCAL end 5814283 */
 
 /* APPLE LOCAL begin radar 5618945 */
 __STATIC_INLINE void __attribute__((__always_inline__))

Modified: llvm-gcc-4.2/trunk/gcc/config/i386/tmmintrin.h
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/config/i386/tmmintrin.h?rev=48785&r1=48784&r2=48785&view=diff

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/config/i386/tmmintrin.h (original)
+++ llvm-gcc-4.2/trunk/gcc/config/i386/tmmintrin.h Tue Mar 25 13:41:10 2008
@@ -239,8 +239,10 @@
   return (__m64) __builtin_ia32_psignd ((__v2si)__X, (__v2si)__Y);
 }
 
+/* APPLE LOCAL begin 5814283 */
 #define _mm_alignr_epi8(__X, __Y, __N) \
-  ((__m128i)__builtin_ia32_palignr128 ((__v2di) __X, (__v2di) __Y, (__N) * 8))
+  ((__m128i)__builtin_ia32_palignr128 ((__v2di)(__X), (__v2di)(__Y), (__N) * 8))
+/* APPLE LOCAL end 5814283 */
 
 #define _mm_alignr_pi8(__X, __Y, __N) \
   ((__m64)__builtin_ia32_palignr ((long long) (__X), (long long) (__Y), (__N) * 8))

Added: llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/5814283.c
URL: http://llvm.org/viewvc/llvm-project/llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/5814283.c?rev=48785&view=auto

==============================================================================
--- llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/5814283.c (added)
+++ llvm-gcc-4.2/trunk/gcc/testsuite/gcc.apple/5814283.c Tue Mar 25 13:41:10 2008
@@ -0,0 +1,18 @@
+/* APPLE LOCAL file 5814283 */
+/* { dg-do compile } */
+/* { dg-options "-O2 -mssse3" } */
+#include <emmintrin.h>
+#include <tmmintrin.h>
+extern int i1, i2;
+__m128i b, c, d[10];
+__m128d dd[5];
+nonsense (void)
+{
+  /* These are all macros.  Insure their parameters are parenthesized
+     at expansion.  */
+  dd[0] = _mm_shuffle_pd(i1 ? b : c, i2 ? b : c, 0);
+  d[1] = _mm_shufflehi_epi16(i1 ? b : c, 0);
+  d[2] = _mm_shufflelo_epi16(i1 ? b : c, 0);
+  d[3] = _mm_shuffle_epi32(i1 ? b : c, 0);
+  d[4] = _mm_alignr_epi8(i1 ? b : c, i2 ? b : c, 0);
+}





More information about the llvm-commits mailing list