mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
78e68a8937
commit
d94a3592d4
|
@ -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.
|
||||
|
|
|
@ -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 }; }
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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];
|
||||
}
|
||||
|
|
|
@ -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 };
|
||||
|
|
|
@ -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 ();
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 } */
|
||||
|
||||
|
|
|
@ -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 } */
|
||||
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue