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>
|
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/compound-literal-1.c: Fix for llp64.
|
||||||
* gcc.dg/pr32370.c: Likewise.
|
* gcc.dg/pr32370.c: Likewise.
|
||||||
* gcc.dg/pr37561.c: Likewise.
|
* gcc.dg/pr37561.c: Likewise.
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* Make certain that we pass __m256i in the correct register for AVX. */
|
/* Make certain that we pass __m256i in the correct register for AVX. */
|
||||||
/* { dg-do compile } */
|
/* { dg-do compile } */
|
||||||
/* { dg-options "-O1 -mavx" } */
|
/* { dg-options "-O1 -mavx" } */
|
||||||
|
/* { dg-options "-mabi=sysv -O1 -mavx" { target x86_64-*-mingw* } } */
|
||||||
|
|
||||||
typedef long long __m256i __attribute__ ((__vector_size__ (32)));
|
typedef long long __m256i __attribute__ ((__vector_size__ (32)));
|
||||||
__m256i foo (void) { return (__m256i){ 1, 2, 3, 4 }; }
|
__m256i foo (void) { return (__m256i){ 1, 2, 3, 4 }; }
|
||||||
|
|
|
@ -6,6 +6,13 @@
|
||||||
|
|
||||||
static void aes_avx_test (void);
|
static void aes_avx_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
aes_avx_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -17,7 +24,7 @@ main ()
|
||||||
/* Run AES + AVX test only if host has AES + AVX support. */
|
/* Run AES + AVX test only if host has AES + AVX support. */
|
||||||
if ((ecx & (bit_AVX | bit_AES)) == (bit_AVX | bit_AES))
|
if ((ecx & (bit_AVX | bit_AES)) == (bit_AVX | bit_AES))
|
||||||
{
|
{
|
||||||
aes_avx_test ();
|
do_test ();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("PASSED\n");
|
printf ("PASSED\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void aes_test (void);
|
static void aes_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
aes_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -16,7 +23,7 @@ main ()
|
||||||
/* Run AES test only if host has AES support. */
|
/* Run AES test only if host has AES support. */
|
||||||
if (ecx & bit_AES)
|
if (ecx & bit_AES)
|
||||||
{
|
{
|
||||||
aes_test ();
|
do_test ();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("PASSED\n");
|
printf ("PASSED\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,6 +4,13 @@
|
||||||
|
|
||||||
static void avx_test (void);
|
static void avx_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
avx_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
/* Run AVX test only if host has AVX support. */
|
/* Run AVX test only if host has AVX support. */
|
||||||
if (ecx & bit_AVX)
|
if (ecx & bit_AVX)
|
||||||
{
|
{
|
||||||
avx_test ();
|
do_test ();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("PASSED\n");
|
printf ("PASSED\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -4,6 +4,13 @@
|
||||||
|
|
||||||
static void fma4_test (void);
|
static void fma4_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
fma4_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -14,7 +21,7 @@ main ()
|
||||||
|
|
||||||
/* Run FMA4 test only if host has FMA4 support. */
|
/* Run FMA4 test only if host has FMA4 support. */
|
||||||
if (ecx & bit_FMA4)
|
if (ecx & bit_FMA4)
|
||||||
fma4_test ();
|
do_test ();
|
||||||
|
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void mmx_3dnow_test (void);
|
static void mmx_3dnow_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
mmx_3dnow_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run 3DNow! test only if host has 3DNow! support. */
|
/* Run 3DNow! test only if host has 3DNow! support. */
|
||||||
if (edx & bit_3DNOW)
|
if (edx & bit_3DNOW)
|
||||||
mmx_3dnow_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void mmx_test (void);
|
static void mmx_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
mmx_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run MMX test only if host has MMX support. */
|
/* Run MMX test only if host has MMX support. */
|
||||||
if (edx & bit_MMX)
|
if (edx & bit_MMX)
|
||||||
mmx_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,13 @@
|
||||||
|
|
||||||
static void pclmul_avx_test (void);
|
static void pclmul_avx_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
pclmul_avx_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -17,7 +24,7 @@ main ()
|
||||||
/* Run PCLMUL + AVX test only if host has PCLMUL + AVX support. */
|
/* Run PCLMUL + AVX test only if host has PCLMUL + AVX support. */
|
||||||
if ((ecx & (bit_AVX | bit_PCLMUL)) == (bit_AVX | bit_PCLMUL))
|
if ((ecx & (bit_AVX | bit_PCLMUL)) == (bit_AVX | bit_PCLMUL))
|
||||||
{
|
{
|
||||||
pclmul_avx_test ();
|
do_test ();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("PASSED\n");
|
printf ("PASSED\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void pclmul_test (void);
|
static void pclmul_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
pclmul_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -16,7 +23,7 @@ main ()
|
||||||
/* Run PCLMULQDQ test only if host has PCLMULQDQ support. */
|
/* Run PCLMULQDQ test only if host has PCLMULQDQ support. */
|
||||||
if (ecx & bit_PCLMUL)
|
if (ecx & bit_PCLMUL)
|
||||||
{
|
{
|
||||||
pclmul_test ();
|
do_test ();
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
printf ("PASSED\n");
|
printf ("PASSED\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3,7 +3,13 @@
|
||||||
|
|
||||||
unsigned array[4];
|
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];
|
return array[(x>>2)&3ul];
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,22 +12,24 @@
|
||||||
# define SI_REG asm ("esi")
|
# define SI_REG asm ("esi")
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
__extension__ typedef __SIZE_TYPE__ size_t;
|
||||||
|
|
||||||
static inline int
|
static inline int
|
||||||
foo (unsigned int x, void *y)
|
foo (unsigned int x, void *y)
|
||||||
{
|
{
|
||||||
register unsigned long r AX_REG;
|
register size_t r AX_REG;
|
||||||
register unsigned long a1 DI_REG;
|
register size_t a1 DI_REG;
|
||||||
register unsigned long a2 SI_REG;
|
register size_t a2 SI_REG;
|
||||||
a1 = (unsigned long) x;
|
a1 = (size_t) x;
|
||||||
a2 = (unsigned long) y;
|
a2 = (size_t) y;
|
||||||
asm volatile ("" : "=r" (r), "+r" (a1), "+r" (a2) : : "memory");
|
asm volatile ("" : "=r" (r), "+r" (a1), "+r" (a2) : : "memory");
|
||||||
return (int) r;
|
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
|
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;
|
long r;
|
||||||
struct T e = { .t1 = x, .t2 = u };
|
struct T e = { .t1 = x, .t2 = u };
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
|
/* { dg-compile } */
|
||||||
typedef float __m128 __attribute__ ((__vector_size__ (16)));
|
typedef float __m128 __attribute__ ((__vector_size__ (16)));
|
||||||
|
__extension__ typedef __PTRDIFF_TYPE__ ptrdiff_t;
|
||||||
|
|
||||||
extern void foo (__m128 *);
|
extern void foo (__m128 *);
|
||||||
extern void abort (void);
|
extern void abort (void);
|
||||||
|
@ -8,7 +10,7 @@ __m128 y = { 0.0, 1.0, 2.0, 3.0 };
|
||||||
void
|
void
|
||||||
bar (__m128 *x, int align)
|
bar (__m128 *x, int align)
|
||||||
{
|
{
|
||||||
if ((((__PTRDIFF_TYPE__) x) & (align - 1)) != 0)
|
if ((((ptrdiff_t) x) & (align - 1)) != 0)
|
||||||
abort ();
|
abort ();
|
||||||
if (__builtin_memcmp (x, &y, sizeof (y)) != 0)
|
if (__builtin_memcmp (x, &y, sizeof (y)) != 0)
|
||||||
abort ();
|
abort ();
|
||||||
|
|
|
@ -6,6 +6,13 @@
|
||||||
|
|
||||||
static void sse_test (void);
|
static void sse_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -16,7 +23,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE test only if host has SSE support. */
|
/* Run SSE test only if host has SSE support. */
|
||||||
if (edx & bit_SSE)
|
if (edx & bit_SSE)
|
||||||
sse_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,13 @@
|
||||||
|
|
||||||
static void sse2_test (void);
|
static void sse2_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse2_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -14,7 +21,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE2 test only if host has SSE2 support. */
|
/* Run SSE2 test only if host has SSE2 support. */
|
||||||
if (edx & bit_SSE2)
|
if (edx & bit_SSE2)
|
||||||
sse2_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void sse3_test (void);
|
static void sse3_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse3_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE3 test only if host has SSE3 support. */
|
/* Run SSE3 test only if host has SSE3 support. */
|
||||||
if (ecx & bit_SSE3)
|
if (ecx & bit_SSE3)
|
||||||
sse3_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,13 @@ static void sse4_1_test (void);
|
||||||
|
|
||||||
#define MASK 0x2
|
#define MASK 0x2
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse4_1_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -17,7 +24,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE4.1 test only if host has SSE4.1 support. */
|
/* Run SSE4.1 test only if host has SSE4.1 support. */
|
||||||
if (ecx & bit_SSE4_1)
|
if (ecx & bit_SSE4_1)
|
||||||
sse4_1_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void sse4_2_test (void);
|
static void sse4_2_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse4_2_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE4.2 test only if host has SSE4.2 support. */
|
/* Run SSE4.2 test only if host has SSE4.2 support. */
|
||||||
if (ecx & bit_SSE4_2)
|
if (ecx & bit_SSE4_2)
|
||||||
sse4_2_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void sse4a_test (void);
|
static void sse4a_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
sse4a_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSE4a test only if host has SSE4a support. */
|
/* Run SSE4a test only if host has SSE4a support. */
|
||||||
if (ecx & bit_SSE4a)
|
if (ecx & bit_SSE4a)
|
||||||
sse4a_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void ssse3_test (void);
|
static void ssse3_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
ssse3_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run SSSE3 test only if host has SSSE3 support. */
|
/* Run SSSE3 test only if host has SSSE3 support. */
|
||||||
if (ecx & bit_SSSE3)
|
if (ecx & bit_SSSE3)
|
||||||
ssse3_test ();
|
do_test ();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* PR middle-end/36858 */
|
/* PR middle-end/36858 */
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-options "-w" { target { lp64 } } } */
|
/* { dg-options "-w" { target { lp64 } } } */
|
||||||
|
/* { dg-options "-w" { target { llp64 } } } */
|
||||||
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
|
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
|
||||||
/* { dg-require-effective-target sse2 } */
|
/* { dg-require-effective-target sse2 } */
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
/* PR middle-end/36859 */
|
/* PR middle-end/36859 */
|
||||||
/* { dg-do run } */
|
/* { dg-do run } */
|
||||||
/* { dg-options "-w" { target { lp64 } } } */
|
/* { dg-options "-w" { target { lp64 } } } */
|
||||||
|
/* { dg-options "-w" { target { llp64 } } } */
|
||||||
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
|
/* { dg-options "-w -msse2 -mpreferred-stack-boundary=2" { target { ilp32 } } } */
|
||||||
/* { dg-require-effective-target sse2 } */
|
/* { dg-require-effective-target sse2 } */
|
||||||
|
|
||||||
|
|
|
@ -5,6 +5,13 @@
|
||||||
|
|
||||||
static void xop_test (void);
|
static void xop_test (void);
|
||||||
|
|
||||||
|
static void
|
||||||
|
__attribute__ ((noinline))
|
||||||
|
do_test (void)
|
||||||
|
{
|
||||||
|
xop_test ();
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main ()
|
main ()
|
||||||
{
|
{
|
||||||
|
@ -15,7 +22,7 @@ main ()
|
||||||
|
|
||||||
/* Run XOP test only if host has XOP support. */
|
/* Run XOP test only if host has XOP support. */
|
||||||
if (ecx & bit_XOP)
|
if (ecx & bit_XOP)
|
||||||
xop_test ();
|
do_test ();
|
||||||
|
|
||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue