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
This commit is contained in:
Kai Tietz 2010-06-07 10:56:44 +00:00 committed by Kai Tietz
parent 78e68a8937
commit d94a3592d4
23 changed files with 177 additions and 25 deletions

View 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.

View 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 }; }

View 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

View 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

View 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

View 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);
}

View 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;
}

View 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;
}

View 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

View 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

View 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];
}

View File

@ -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 };

View 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 ();

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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;
}

View 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 } */

View 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 } */

View 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);
}