OSDN Git Service

2010-06-07 Kai Tietz <kai.tietz@onevision.com>
authorktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Jun 2010 10:56:44 +0000 (10:56 +0000)
committerktietz <ktietz@138bc75d-0d04-0410-961f-82ee72b054a4>
Mon, 7 Jun 2010 10:56:44 +0000 (10:56 +0000)
PR target/44159
* gcc.target/i386/abi-2.c: Check sysv abi here.
* gcc.target/i386/aes-avx-check.h: Call test in noinline
function to avoid failures by different ABIs.
* gcc.target/i386/aes-check.h: Likewise.
* gcc.target/i386/avx-check.h: Likewise.
* gcc.target/i386/fma4-check.h: Likewise.
* gcc.target/i386/mmx-3dnow-check.h: Likewise.
* gcc.target/i386/mmx-check.h: Likewise.
* gcc.target/i386/pclmul-avx-check.h: Likewise.
* gcc.target/i386/pclmul-check.h: Likewise.
* gcc.target/i386/sse-check.h: Likewise.
* gcc.target/i386/sse2-check.h: Likewise.
* gcc.target/i386/sse3-check.h: Likewise.
* gcc.target/i386/sse4_1-check.h: Likewise.
* gcc.target/i386/sse4_2-check.h: Likewise.
* gcc.target/i386/sse4a-check.h: Likewise.
* gcc.target/i386/ssse3-check.h: Likewise.
* gcc.target/i386/xop-check.h: Likewise.
* gcc.target/i386/pr27971.c: Fix for LLP64.
* gcc.target/i386/pr39139.c: Likewise.
* gcc.target/i386/pr39315-check.c: Likewise.
* gcc.target/i386/vararg-1.c: Likewise.
* gcc.target/i386/vararg-2.c: Likewise.
Additional add dg-compile to avoid failure due
missing foo symbol.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@160363 138bc75d-0d04-0410-961f-82ee72b054a4

23 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/abi-2.c
gcc/testsuite/gcc.target/i386/aes-avx-check.h
gcc/testsuite/gcc.target/i386/aes-check.h
gcc/testsuite/gcc.target/i386/avx-check.h
gcc/testsuite/gcc.target/i386/fma4-check.h
gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
gcc/testsuite/gcc.target/i386/mmx-check.h
gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
gcc/testsuite/gcc.target/i386/pclmul-check.h
gcc/testsuite/gcc.target/i386/pr27971.c
gcc/testsuite/gcc.target/i386/pr39139.c
gcc/testsuite/gcc.target/i386/pr39315-check.c
gcc/testsuite/gcc.target/i386/sse-check.h
gcc/testsuite/gcc.target/i386/sse2-check.h
gcc/testsuite/gcc.target/i386/sse3-check.h
gcc/testsuite/gcc.target/i386/sse4_1-check.h
gcc/testsuite/gcc.target/i386/sse4_2-check.h
gcc/testsuite/gcc.target/i386/sse4a-check.h
gcc/testsuite/gcc.target/i386/ssse3-check.h
gcc/testsuite/gcc.target/i386/vararg-1.c
gcc/testsuite/gcc.target/i386/vararg-2.c
gcc/testsuite/gcc.target/i386/xop-check.h

index e9f66a3..7020fc7 100644 (file)
@@ -1,5 +1,32 @@
 2010-06-07  Kai Tietz  <kai.tietz@onevision.com>
 
+       PR target/44159
+       * gcc.target/i386/abi-2.c: Check sysv abi here.
+       * gcc.target/i386/aes-avx-check.h: Call test in noinline
+       function to avoid failures by different ABIs.
+       * gcc.target/i386/aes-check.h: Likewise.
+       * gcc.target/i386/avx-check.h: Likewise.
+       * gcc.target/i386/fma4-check.h: Likewise.
+       * gcc.target/i386/mmx-3dnow-check.h: Likewise.
+       * gcc.target/i386/mmx-check.h: Likewise.
+       * gcc.target/i386/pclmul-avx-check.h: Likewise.
+       * gcc.target/i386/pclmul-check.h: Likewise.
+       * gcc.target/i386/sse-check.h: Likewise.
+       * gcc.target/i386/sse2-check.h: Likewise.
+       * gcc.target/i386/sse3-check.h: Likewise.
+       * gcc.target/i386/sse4_1-check.h: Likewise.
+       * gcc.target/i386/sse4_2-check.h: Likewise.
+       * gcc.target/i386/sse4a-check.h: Likewise.
+       * gcc.target/i386/ssse3-check.h: Likewise.
+       * gcc.target/i386/xop-check.h: Likewise.
+       * gcc.target/i386/pr27971.c: Fix for LLP64.
+       * gcc.target/i386/pr39139.c: Likewise.
+       * gcc.target/i386/pr39315-check.c: Likewise.
+       * gcc.target/i386/vararg-1.c: Likewise.
+       * gcc.target/i386/vararg-2.c: Likewise.
+       Additional add dg-compile to avoid failure due
+       missing foo symbol.
+
         * gcc.dg/compound-literal-1.c: Fix for llp64.
         * gcc.dg/pr32370.c: Likewise.
         * gcc.dg/pr37561.c: Likewise.
index 5ed6b4a..39eafc2 100644 (file)
@@ -1,6 +1,7 @@
 /* Make certain that we pass __m256i in the correct register for AVX.  */
 /* { dg-do compile } */
 /* { dg-options "-O1 -mavx" } */
+/* { dg-options "-mabi=sysv -O1 -mavx" { target x86_64-*-mingw* } } */
 
 typedef long long __m256i __attribute__ ((__vector_size__ (32)));
 __m256i foo (void) { return (__m256i){ 1, 2, 3, 4 }; }
index e73e36e..e91e881 100644 (file)
@@ -6,6 +6,13 @@
 
 static void aes_avx_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  aes_avx_test ();
+}
+
 int
 main ()
 {
@@ -17,7 +24,7 @@ main ()
   /* Run AES + AVX test only if host has AES + AVX support.  */
   if ((ecx & (bit_AVX | bit_AES)) == (bit_AVX | bit_AES))
     {
-      aes_avx_test ();
+      do_test ();
 #ifdef DEBUG
       printf ("PASSED\n");
 #endif
index f56f1ad..7e79442 100644 (file)
@@ -5,6 +5,13 @@
 
 static void aes_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  aes_test ();
+}
+
 int
 main ()
 {
@@ -16,7 +23,7 @@ main ()
   /* Run AES test only if host has AES support.  */
   if (ecx & bit_AES)
     {
-      aes_test ();
+      do_test ();
 #ifdef DEBUG
     printf ("PASSED\n");
 #endif
index 8db55a1..7736fc9 100644 (file)
@@ -4,6 +4,13 @@
 
 static void avx_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  avx_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
   /* Run AVX test only if host has AVX support.  */
   if (ecx & bit_AVX)
     {
-      avx_test ();
+      do_test ();
 #ifdef DEBUG
       printf ("PASSED\n");
 #endif
index 76fcdef..dc7ee57 100644 (file)
@@ -4,6 +4,13 @@
 
 static void fma4_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  fma4_test ();
+}
+
 int
 main ()
 {
@@ -14,7 +21,7 @@ main ()
 
   /* Run FMA4 test only if host has FMA4 support.  */
   if (ecx & bit_FMA4)
-    fma4_test ();
+    do_test ();
 
   exit (0);
 }
index 458e7cd..4f2f7f3 100644 (file)
@@ -5,6 +5,13 @@
 
 static void mmx_3dnow_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  mmx_3dnow_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run 3DNow! test only if host has 3DNow! support.  */
   if (edx & bit_3DNOW)
-    mmx_3dnow_test ();
+    do_test ();
 
   return 0;
 }
index aefdc4e..faf9b87 100644 (file)
@@ -5,6 +5,13 @@
 
 static void mmx_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  mmx_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run MMX test only if host has MMX support.  */
   if (edx & bit_MMX)
-    mmx_test ();
+    do_test ();
 
   return 0;
 }
index de63333..550e499 100644 (file)
@@ -6,6 +6,13 @@
 
 static void pclmul_avx_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  pclmul_avx_test ();
+}
+
 int
 main ()
 {
@@ -17,7 +24,7 @@ main ()
   /* Run PCLMUL + AVX test only if host has PCLMUL + AVX support.  */
   if ((ecx & (bit_AVX | bit_PCLMUL)) == (bit_AVX | bit_PCLMUL))
     {
-      pclmul_avx_test ();
+      do_test ();
 #ifdef DEBUG
       printf ("PASSED\n");
 #endif
index 706fd64..7526cbe 100644 (file)
@@ -5,6 +5,13 @@
 
 static void pclmul_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  pclmul_test ();
+}
+
 int
 main ()
 {
@@ -16,7 +23,7 @@ main ()
   /* Run PCLMULQDQ test only if host has PCLMULQDQ support.  */
   if (ecx & bit_PCLMUL)
     {
-      pclmul_test ();
+      do_test ();
 #ifdef DEBUG
       printf ("PASSED\n");
 #endif
index 8c706ad..27888de 100644 (file)
@@ -3,7 +3,13 @@
 
 unsigned array[4];
 
-unsigned foo(unsigned long x)
+#ifdef _WIN64
+__extension__ typedef unsigned long long TYPE;
+#else
+#define TYPE unsigned long
+#endif
+
+unsigned foo(TYPE x)
 {
           return array[(x>>2)&3ul];
 }
index 95ea7fd..e4cb845 100644 (file)
 # define SI_REG asm ("esi")
 #endif
 
+__extension__ typedef __SIZE_TYPE__ size_t;
+
 static inline int
 foo (unsigned int x, void *y)
 {
-  register unsigned long r AX_REG;
-  register unsigned long a1 DI_REG;
-  register unsigned long a2 SI_REG;
-  a1 = (unsigned long) x;
-  a2 = (unsigned long) y;
+  register size_t r AX_REG;
+  register size_t a1 DI_REG;
+  register size_t a2 SI_REG;
+  a1 = (size_t) x;
+  a2 = (size_t) y;
   asm volatile ("" : "=r" (r), "+r" (a1), "+r" (a2) : : "memory");
   return (int) r;
 }
 
-struct T { unsigned long t1, t2; unsigned int t3, t4, t5; };
+struct T { size_t t1, t2; unsigned int t3, t4, t5; };
 
 int
-bar (unsigned long x, unsigned int y, unsigned long u, unsigned int v)
+bar (size_t x, unsigned int y, size_t u, unsigned int v)
 {
   long r;
   struct T e = { .t1 = x, .t2 = u };
index ff92605..8f73760 100644 (file)
@@ -1,4 +1,6 @@
+/* { dg-compile } */
 typedef float __m128 __attribute__ ((__vector_size__ (16)));
+__extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t;
 
 extern void foo (__m128 *);
 extern void abort (void);
@@ -8,7 +10,7 @@ __m128 y = { 0.0, 1.0, 2.0, 3.0 };
 void
 bar (__m128 *x, int align)
 {
-  if ((((__PTRDIFF_TYPE__) x) & (align - 1)) != 0)
+  if ((((ptrdiff_t) x) & (align - 1)) != 0)
     abort ();
   if (__builtin_memcmp (x, &y, sizeof (y)) != 0)
     abort ();
index 79ea481..85629cc 100644 (file)
@@ -6,6 +6,13 @@
 
 static void sse_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse_test ();
+}
+
 int
 main ()
 {
@@ -16,7 +23,7 @@ main ()
 
   /* Run SSE test only if host has SSE support.  */
   if (edx & bit_SSE)
-    sse_test ();
+    do_test ();
 
   return 0;
 }
index a69333e..e9f17f0 100644 (file)
@@ -4,6 +4,13 @@
 
 static void sse2_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse2_test ();
+}
+
 int
 main ()
 {
@@ -14,7 +21,7 @@ main ()
 
   /* Run SSE2 test only if host has SSE2 support.  */
   if (edx & bit_SSE2)
-    sse2_test ();
+    do_test ();
 
   return 0;
 }
index 92930d1..df0e63a 100644 (file)
@@ -5,6 +5,13 @@
 
 static void sse3_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse3_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
  
   /* Run SSE3 test only if host has SSE3 support.  */
   if (ecx & bit_SSE3)
-    sse3_test ();
+    do_test ();
 
   return 0;
 }
index 2d1c4e8..788f65d 100644 (file)
@@ -7,6 +7,13 @@ static void sse4_1_test (void);
 
 #define MASK 0x2
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse4_1_test ();
+}
+
 int
 main ()
 {
@@ -17,7 +24,7 @@ main ()
 
   /* Run SSE4.1 test only if host has SSE4.1 support.  */
   if (ecx & bit_SSE4_1)
-    sse4_1_test ();
+    do_test ();
 
   return 0;
 }
index 2a397e8..d10e6c7 100644 (file)
@@ -5,6 +5,13 @@
 
 static void sse4_2_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse4_2_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run SSE4.2 test only if host has SSE4.2 support.  */
   if (ecx & bit_SSE4_2)
-    sse4_2_test ();
+    do_test ();
 
   return 0;
 }
index d6140e8..d43b4b2 100644 (file)
@@ -5,6 +5,13 @@
 
 static void sse4a_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  sse4a_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run SSE4a test only if host has SSE4a support.  */
   if (ecx & bit_SSE4a)
-    sse4a_test ();
+    do_test ();
 
   return 0;
 }
index 78df15d..3ca7933 100644 (file)
@@ -5,6 +5,13 @@
 
 static void ssse3_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  ssse3_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run SSSE3 test only if host has SSSE3 support.  */
   if (ecx & bit_SSSE3)
-    ssse3_test ();
+    do_test ();
 
   return 0;
 }
index cfb1e30..9ed9ab0 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/36858 */
 /* { dg-do run } */
 /* { dg-options "-w" { target { lp64 } } } */
+/* { dg-options "-w" { target { llp64 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
 /* { dg-require-effective-target sse2 } */
 
index 6079317..8048012 100644 (file)
@@ -1,6 +1,7 @@
 /* PR middle-end/36859 */
 /* { dg-do run } */
 /* { dg-options "-w" { target { lp64 } } } */
+/* { dg-options "-w" { target { llp64 } } } */
 /* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
 /* { dg-require-effective-target sse2 } */
 
index fb98c6d..7e8e665 100644 (file)
@@ -5,6 +5,13 @@
 
 static void xop_test (void);
 
+static void
+__attribute__ ((noinline))
+do_test (void)
+{
+  xop_test ();
+}
+
 int
 main ()
 {
@@ -15,7 +22,7 @@ main ()
 
   /* Run XOP test only if host has XOP support.  */
   if (ecx & bit_XOP)
-    xop_test ();
+    do_test ();
 
   exit (0);
 }