* gcc.dg/mvc1.c: Move to ...
* gcc.target/i386/mvc1.c: ... here. Require ifunc.
* gcc.dg/mvc2.c: Move to ...
* gcc.target/i386/mvc2.c: ... here.
* gcc.dg/mvc3.c: Move to ...
* gcc.target/i386/mvc3.c: ... here.
* gcc.dg/mvc4.c: Move to ...
* gcc.target/i386/mvc4.c: ... here. Require ifunc.
* gcc.dg/mvc5.c: Move to ...
* gcc.target/i386/mvc5.c: ... here.
* gcc.dg/mvc6.c: Move to ...
* gcc.target/i386/mvc6.c: ... here.
* gcc.dg/mvc7.c: Move to ...
* gcc.target/i386/mvc7.c: ... here.
* g++.dg/ext/mvc1.C: Require ifunc.
From-SVN: r229697
+2015-11-03 Uros Bizjak <ubizjak@gmail.com>
+
+ * gcc.dg/mvc1.c: Move to ...
+ * gcc.target/i386/mvc1.c: ... here. Require ifunc.
+ * gcc.dg/mvc2.c: Move to ...
+ * gcc.target/i386/mvc2.c: ... here.
+ * gcc.dg/mvc3.c: Move to ...
+ * gcc.target/i386/mvc3.c: ... here.
+ * gcc.dg/mvc4.c: Move to ...
+ * gcc.target/i386/mvc4.c: ... here. Require ifunc.
+ * gcc.dg/mvc5.c: Move to ...
+ * gcc.target/i386/mvc5.c: ... here.
+ * gcc.dg/mvc6.c: Move to ...
+ * gcc.target/i386/mvc6.c: ... here.
+ * gcc.dg/mvc7.c: Move to ...
+ * gcc.target/i386/mvc7.c: ... here.
+
+ * g++.dg/ext/mvc1.C: Require ifunc.
+
2015-11-02 Alexandre Oliva <aoliva@redhat.com>
PR tree-optimization/68083
/* { dg-do run { target i?86-*-* x86_64-*-* } } */
+/* { dg-require-ifunc "" } */
__attribute__((target_clones("avx","arch=slm","arch=core-avx2","default")))
int
+++ /dev/null
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-
-__attribute__((target_clones("avx","arch=slm","arch=core-avx2","default")))
-int
-foo ()
-{
- return -2;
-}
-
-int
-bar ()
-{
- return 2;
-}
-
-int
-main ()
-{
- int r = 0;
- r += bar ();
- r += foo ();
- r += bar ();
- r += foo ();
- r += bar ();
- return r - 2;
-}
+++ /dev/null
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-
-__attribute__((target_clones("avx","arch=slm","arch=core-avx2")))
-int foo ();
+++ /dev/null
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-
-__attribute__((target_clones("avx","arch=slm","arch=core-avx2")))
-int foo (); /* { dg-error "default target was not set" } */
-
-int
-bar ()
-{
- return foo();
-}
+++ /dev/null
-/* { dg-do run { target i?86-*-* x86_64-*-* } } */
-
-__attribute__((target_clones("default","avx","default")))
-int
-foo ()
-{
- return -2;
-}
-
-int
-bar ()
-{
- return 2;
-}
-
-int
-main ()
-{
- int r = 0;
- r += bar ();
- r += foo ();
- r += bar ();
- r += foo ();
- r += bar ();
- return r - 2;
-}
+++ /dev/null
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-fno-inline" } */
-/* { dg-final { scan-assembler-times "foo.ifunc" 6 } } */
-
-__attribute__((target_clones("default","avx","avx2")))
-int
-foo ()
-{
- return 10;
-}
-
-__attribute__((target_clones("default","avx","avx2")))
-int
-bar ()
-{
- return -foo ();
-}
+++ /dev/null
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-options "-O3" } */
-/* { dg-final { scan-assembler "vpshufb" } } */
-/* { dg-final { scan-assembler "punpcklbw" } } */
-
-__attribute__((target_clones("arch=core-avx2","arch=slm","default")))
-void
-foo(char *in, char *out, int size)
-{
- int i;
- for(i = 0; i < size; i++)
- {
- out[2 * i] = in[i];
- out[2 * i + 1] = in[i];
- }
-}
+++ /dev/null
-/* { dg-do compile { target i?86-*-* x86_64-*-* } } */
-/* { dg-final { scan-assembler-times "foo.ifunc" 4 } } */
-
-__attribute__((target_clones("avx","default","arch=slm","arch=core-avx2")))
-int foo ();
-
-int main()
-{
- return foo();
-}
--- /dev/null
+/* { dg-do run } */
+/* { dg-require-ifunc "" } */
+
+__attribute__((target_clones("avx","arch=slm","arch=core-avx2","default")))
+int
+foo ()
+{
+ return -2;
+}
+
+int
+bar ()
+{
+ return 2;
+}
+
+int
+main ()
+{
+ int r = 0;
+ r += bar ();
+ r += foo ();
+ r += bar ();
+ r += foo ();
+ r += bar ();
+ return r - 2;
+}
--- /dev/null
+/* { dg-do compile } */
+
+__attribute__((target_clones("avx","arch=slm","arch=core-avx2")))
+int foo ();
--- /dev/null
+/* { dg-do compile } */
+
+__attribute__((target_clones("avx","arch=slm","arch=core-avx2")))
+int foo (); /* { dg-error "default target was not set" } */
+
+int
+bar ()
+{
+ return foo();
+}
--- /dev/null
+/* { dg-do run } */
+/* { dg-require-ifunc "" } */
+
+__attribute__((target_clones("default","avx","default")))
+int
+foo ()
+{
+ return -2;
+}
+
+int
+bar ()
+{
+ return 2;
+}
+
+int
+main ()
+{
+ int r = 0;
+ r += bar ();
+ r += foo ();
+ r += bar ();
+ r += foo ();
+ r += bar ();
+ return r - 2;
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-fno-inline" } */
+/* { dg-final { scan-assembler-times "foo.ifunc" 6 } } */
+
+__attribute__((target_clones("default","avx","avx2")))
+int
+foo ()
+{
+ return 10;
+}
+
+__attribute__((target_clones("default","avx","avx2")))
+int
+bar ()
+{
+ return -foo ();
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-options "-O3" } */
+/* { dg-final { scan-assembler "vpshufb" } } */
+/* { dg-final { scan-assembler "punpcklbw" } } */
+
+__attribute__((target_clones("arch=core-avx2","arch=slm","default")))
+void
+foo(char *in, char *out, int size)
+{
+ int i;
+ for(i = 0; i < size; i++)
+ {
+ out[2 * i] = in[i];
+ out[2 * i + 1] = in[i];
+ }
+}
--- /dev/null
+/* { dg-do compile } */
+/* { dg-final { scan-assembler-times "foo.ifunc" 4 } } */
+
+__attribute__((target_clones("avx","default","arch=slm","arch=core-avx2")))
+int foo ();
+
+int main()
+{
+ return foo();
+}