aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKai Tietz <kai.tietz@onevision.com>2010-06-07 10:56:44 +0000
committerKai Tietz <ktietz@gcc.gnu.org>2010-06-07 12:56:44 +0200
commitd94a3592d4b796aa86da74cda88de8dfaadddbf3 (patch)
treed18ce95c065410ab83e4cfbfc73cce11d87de268 /gcc
parent78e68a8937395f334fe12c347897950e9caba6cb (diff)
downloadgcc-d94a3592d4b796aa86da74cda88de8dfaadddbf3.zip
gcc-d94a3592d4b796aa86da74cda88de8dfaadddbf3.tar.gz
gcc-d94a3592d4b796aa86da74cda88de8dfaadddbf3.tar.bz2
re PR testsuite/44159 (CPU options cause testsuite failures)
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. From-SVN: r160363
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/ChangeLog27
-rw-r--r--gcc/testsuite/gcc.target/i386/abi-2.c1
-rw-r--r--gcc/testsuite/gcc.target/i386/aes-avx-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/aes-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/avx-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/fma4-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/mmx-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/pclmul-avx-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/pclmul-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/pr27971.c8
-rw-r--r--gcc/testsuite/gcc.target/i386/pr39139.c16
-rw-r--r--gcc/testsuite/gcc.target/i386/pr39315-check.c4
-rw-r--r--gcc/testsuite/gcc.target/i386/sse-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/sse2-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/sse3-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/sse4_1-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/sse4_2-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/sse4a-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/ssse3-check.h9
-rw-r--r--gcc/testsuite/gcc.target/i386/vararg-1.c1
-rw-r--r--gcc/testsuite/gcc.target/i386/vararg-2.c1
-rw-r--r--gcc/testsuite/gcc.target/i386/xop-check.h9
23 files changed, 177 insertions, 25 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index e9f66a3..7020fc7 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -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.
diff --git a/gcc/testsuite/gcc.target/i386/abi-2.c b/gcc/testsuite/gcc.target/i386/abi-2.c
index 5ed6b4a..39eafc2 100644
--- a/gcc/testsuite/gcc.target/i386/abi-2.c
+++ b/gcc/testsuite/gcc.target/i386/abi-2.c
@@ -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 }; }
diff --git a/gcc/testsuite/gcc.target/i386/aes-avx-check.h b/gcc/testsuite/gcc.target/i386/aes-avx-check.h
index e73e36e..e91e881 100644
--- a/gcc/testsuite/gcc.target/i386/aes-avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/aes-avx-check.h
@@ -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
diff --git a/gcc/testsuite/gcc.target/i386/aes-check.h b/gcc/testsuite/gcc.target/i386/aes-check.h
index f56f1ad..7e79442 100644
--- a/gcc/testsuite/gcc.target/i386/aes-check.h
+++ b/gcc/testsuite/gcc.target/i386/aes-check.h
@@ -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
diff --git a/gcc/testsuite/gcc.target/i386/avx-check.h b/gcc/testsuite/gcc.target/i386/avx-check.h
index 8db55a1..7736fc9 100644
--- a/gcc/testsuite/gcc.target/i386/avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/avx-check.h
@@ -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
diff --git a/gcc/testsuite/gcc.target/i386/fma4-check.h b/gcc/testsuite/gcc.target/i386/fma4-check.h
index 76fcdef..dc7ee57 100644
--- a/gcc/testsuite/gcc.target/i386/fma4-check.h
+++ b/gcc/testsuite/gcc.target/i386/fma4-check.h
@@ -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);
}
diff --git a/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h b/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
index 458e7cd..4f2f7f3 100644
--- a/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
+++ b/gcc/testsuite/gcc.target/i386/mmx-3dnow-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/mmx-check.h b/gcc/testsuite/gcc.target/i386/mmx-check.h
index aefdc4e..faf9b87 100644
--- a/gcc/testsuite/gcc.target/i386/mmx-check.h
+++ b/gcc/testsuite/gcc.target/i386/mmx-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h b/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
index de63333..550e499 100644
--- a/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
+++ b/gcc/testsuite/gcc.target/i386/pclmul-avx-check.h
@@ -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
diff --git a/gcc/testsuite/gcc.target/i386/pclmul-check.h b/gcc/testsuite/gcc.target/i386/pclmul-check.h
index 706fd64..7526cbe 100644
--- a/gcc/testsuite/gcc.target/i386/pclmul-check.h
+++ b/gcc/testsuite/gcc.target/i386/pclmul-check.h
@@ -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
diff --git a/gcc/testsuite/gcc.target/i386/pr27971.c b/gcc/testsuite/gcc.target/i386/pr27971.c
index 8c706ad..27888de 100644
--- a/gcc/testsuite/gcc.target/i386/pr27971.c
+++ b/gcc/testsuite/gcc.target/i386/pr27971.c
@@ -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];
}
diff --git a/gcc/testsuite/gcc.target/i386/pr39139.c b/gcc/testsuite/gcc.target/i386/pr39139.c
index 95ea7fd..e4cb845 100644
--- a/gcc/testsuite/gcc.target/i386/pr39139.c
+++ b/gcc/testsuite/gcc.target/i386/pr39139.c
@@ -12,22 +12,24 @@
# 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 };
diff --git a/gcc/testsuite/gcc.target/i386/pr39315-check.c b/gcc/testsuite/gcc.target/i386/pr39315-check.c
index ff92605..8f73760 100644
--- a/gcc/testsuite/gcc.target/i386/pr39315-check.c
+++ b/gcc/testsuite/gcc.target/i386/pr39315-check.c
@@ -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 ();
diff --git a/gcc/testsuite/gcc.target/i386/sse-check.h b/gcc/testsuite/gcc.target/i386/sse-check.h
index 79ea481..85629cc 100644
--- a/gcc/testsuite/gcc.target/i386/sse-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/sse2-check.h b/gcc/testsuite/gcc.target/i386/sse2-check.h
index a69333e..e9f17f0 100644
--- a/gcc/testsuite/gcc.target/i386/sse2-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse2-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/sse3-check.h b/gcc/testsuite/gcc.target/i386/sse3-check.h
index 92930d1..df0e63a 100644
--- a/gcc/testsuite/gcc.target/i386/sse3-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse3-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/sse4_1-check.h b/gcc/testsuite/gcc.target/i386/sse4_1-check.h
index 2d1c4e8..788f65d 100644
--- a/gcc/testsuite/gcc.target/i386/sse4_1-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4_1-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/sse4_2-check.h b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
index 2a397e8..d10e6c7 100644
--- a/gcc/testsuite/gcc.target/i386/sse4_2-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4_2-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/sse4a-check.h b/gcc/testsuite/gcc.target/i386/sse4a-check.h
index d6140e8..d43b4b2 100644
--- a/gcc/testsuite/gcc.target/i386/sse4a-check.h
+++ b/gcc/testsuite/gcc.target/i386/sse4a-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/ssse3-check.h b/gcc/testsuite/gcc.target/i386/ssse3-check.h
index 78df15d..3ca7933 100644
--- a/gcc/testsuite/gcc.target/i386/ssse3-check.h
+++ b/gcc/testsuite/gcc.target/i386/ssse3-check.h
@@ -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;
}
diff --git a/gcc/testsuite/gcc.target/i386/vararg-1.c b/gcc/testsuite/gcc.target/i386/vararg-1.c
index cfb1e30..9ed9ab0 100644
--- a/gcc/testsuite/gcc.target/i386/vararg-1.c
+++ b/gcc/testsuite/gcc.target/i386/vararg-1.c
@@ -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 } */
diff --git a/gcc/testsuite/gcc.target/i386/vararg-2.c b/gcc/testsuite/gcc.target/i386/vararg-2.c
index 6079317..8048012 100644
--- a/gcc/testsuite/gcc.target/i386/vararg-2.c
+++ b/gcc/testsuite/gcc.target/i386/vararg-2.c
@@ -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 } */
diff --git a/gcc/testsuite/gcc.target/i386/xop-check.h b/gcc/testsuite/gcc.target/i386/xop-check.h
index fb98c6d..7e8e665 100644
--- a/gcc/testsuite/gcc.target/i386/xop-check.h
+++ b/gcc/testsuite/gcc.target/i386/xop-check.h
@@ -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);
}