diff options
author | Kai Tietz <kai.tietz@onevision.com> | 2010-06-07 10:56:44 +0000 |
---|---|---|
committer | Kai Tietz <ktietz@gcc.gnu.org> | 2010-06-07 12:56:44 +0200 |
commit | d94a3592d4b796aa86da74cda88de8dfaadddbf3 (patch) | |
tree | d18ce95c065410ab83e4cfbfc73cce11d87de268 /gcc | |
parent | 78e68a8937395f334fe12c347897950e9caba6cb (diff) | |
download | gcc-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')
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); } |