i386.exp (check_effective_target_ssse3): New.

* gcc.target/i386/i386.exp (check_effective_target_ssse3): New.
	(check_effective_target_sse4a): Ditto.

	* gcc.target/i386/ssse3-phsubw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-phaddd.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pabsb.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-psignb.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-phaddsw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pabsd.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-psignd.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pmaddubsw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pmulhrsw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-phaddw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-phsubd.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pabsw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-psignw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-pshufb.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-phsubsw.c: Require effective target ssse3.
	* gcc.target/i386/ssse3-palignr.c: Require effective target ssse3.
	* gcc.target/i386/sse4a-insert.c: Require effective target sse4a.
	* gcc.target/i386/sse4a-extract.c: Require effective target sse4a.
	* gcc.target/i386/sse4a-montss.c: Require effective target sse4a.
	* gcc.target/i386/sse4a-montsd.c: Require effective target sse4a.

From-SVN: r124939
This commit is contained in:
Uros Bizjak 2007-05-22 10:15:13 +02:00 committed by Uros Bizjak
parent dbc30a9698
commit 0f86970940
22 changed files with 72 additions and 0 deletions

View File

@ -1,3 +1,29 @@
2007-05-22 Uros Bizjak <ubizjak@gmail.com>
* gcc.target/i386/i386.exp (check_effective_target_ssse3): New.
(check_effective_target_sse4a): Ditto.
* gcc.target/i386/ssse3-phsubw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-phaddd.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pabsb.c: Require effective target ssse3.
* gcc.target/i386/ssse3-psignb.c: Require effective target ssse3.
* gcc.target/i386/ssse3-phaddsw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pabsd.c: Require effective target ssse3.
* gcc.target/i386/ssse3-psignd.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pmaddubsw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pmulhrsw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-phaddw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-phsubd.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pabsw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-psignw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-pshufb.c: Require effective target ssse3.
* gcc.target/i386/ssse3-phsubsw.c: Require effective target ssse3.
* gcc.target/i386/ssse3-palignr.c: Require effective target ssse3.
* gcc.target/i386/sse4a-insert.c: Require effective target sse4a.
* gcc.target/i386/sse4a-extract.c: Require effective target sse4a.
* gcc.target/i386/sse4a-montss.c: Require effective target sse4a.
* gcc.target/i386/sse4a-montsd.c: Require effective target sse4a.
2007-05-21 Mark Mitchell <mark@codesourcery.com>
* g++.dg/ext/cleanup-1.C: New test.

View File

@ -24,6 +24,32 @@ if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
# Load support procs.
load_lib gcc-dg.exp
# Return 1 if ssse3 instructions can be compiled.
proc check_effective_target_ssse3 { } {
return [check_no_compiler_messages ssse3 object {
typedef long long __m128i __attribute__ ((__vector_size__ (16)));
typedef int __v4si __attribute__ ((__vector_size__ (16)));
__m128i _mm_abs_epi32 (__m128i __X)
{
return (__m128i) __builtin_ia32_pabsd128 ((__v4si)__X);
}
} "-O2 -mssse3" ]
}
# Return 1 if sse4a instructions can be compiled.
proc check_effective_target_sse4a { } {
return [check_no_compiler_messages sse4a object {
typedef long long __m128i __attribute__ ((__vector_size__ (16)));
typedef long long __v2di __attribute__ ((__vector_size__ (16)));
__m128i _mm_insert_si64 (__m128i __X,__m128i __Y)
{
return (__m128i) __builtin_ia32_insertq ((__v2di)__X, (__v2di)__Y);
}
} "-O2 -msse4a" ]
}
# If a testcase doesn't have special options, use these.
global DEFAULT_CFLAGS
if ![info exists DEFAULT_CFLAGS] then {

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target sse4a } */
/* { dg-options "-O2 -msse4a" } */
#include <ammintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target sse4a } */
/* { dg-options "-O2 -msse4a" } */
#include <ammintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target sse4a } */
/* { dg-options "-O2 -msse4a" } */
#include <ammintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target sse4a } */
/* { dg-options "-O2 -msse4a" } */
#include <ammintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <string.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>

View File

@ -1,4 +1,5 @@
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
/* { dg-require-effective-target ssse3 } */
/* { dg-options "-O2 -mssse3" } */
#include <tmmintrin.h>
#include <stdlib.h>