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:
parent
dbc30a9698
commit
0f86970940
|
@ -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.
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Reference in New Issue