OSDN Git Service

* gcc.target/i386/i386.exp (check_effective_target_ssse3): New.
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 May 2007 08:15:13 +0000 (08:15 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 May 2007 08:15:13 +0000 (08:15 +0000)
(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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@124939 138bc75d-0d04-0410-961f-82ee72b054a4

22 files changed:
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/i386.exp
gcc/testsuite/gcc.target/i386/sse4a-extract.c
gcc/testsuite/gcc.target/i386/sse4a-insert.c
gcc/testsuite/gcc.target/i386/sse4a-montsd.c
gcc/testsuite/gcc.target/i386/sse4a-montss.c
gcc/testsuite/gcc.target/i386/ssse3-pabsb.c
gcc/testsuite/gcc.target/i386/ssse3-pabsd.c
gcc/testsuite/gcc.target/i386/ssse3-pabsw.c
gcc/testsuite/gcc.target/i386/ssse3-palignr.c
gcc/testsuite/gcc.target/i386/ssse3-phaddd.c
gcc/testsuite/gcc.target/i386/ssse3-phaddsw.c
gcc/testsuite/gcc.target/i386/ssse3-phaddw.c
gcc/testsuite/gcc.target/i386/ssse3-phsubd.c
gcc/testsuite/gcc.target/i386/ssse3-phsubsw.c
gcc/testsuite/gcc.target/i386/ssse3-phsubw.c
gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c
gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c
gcc/testsuite/gcc.target/i386/ssse3-pshufb.c
gcc/testsuite/gcc.target/i386/ssse3-psignb.c
gcc/testsuite/gcc.target/i386/ssse3-psignd.c
gcc/testsuite/gcc.target/i386/ssse3-psignw.c

index c37b343..13cc9a5 100644 (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.
index f6c6210..c2e1336 100644 (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 {
index 20817a9..2c8d253 100644 (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>
index 3e44bba..8e014d6 100644 (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>
index e9be98e..26fa6b3 100644 (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>
index 28ecb1c..782c76a 100644 (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>
index 343cc15..c5b67f1 100644 (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>
index 0b0d1f7..75a0656 100644 (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>
index e7aed4a..bc06904 100644 (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>
index 683d24f..7ec58f1 100644 (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>
index f408c7a..575ff11 100644 (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>
index d64d708..10d3e47 100644 (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>
index 9595a36..c7197c4 100644 (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>
index 1fe524b..f640b40 100644 (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>
index 92a7c1e..80dc959 100644 (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>
index a793c8c..67a01c0 100644 (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>
index 4ecee10..d340848 100644 (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>
index 1bd4c2f..7aa5775 100644 (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>
index a06301f..96cd90b 100644 (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>
index 17a7d36..193070f 100644 (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>
index 156c665..706be97 100644 (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>
index aca3612..a36be77 100644 (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>