aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-05-11 13:38:49 +0600
committerJakub Jelinek <jakub@gcc.gnu.org>2018-05-11 09:38:49 +0200
commit5a599c460e3846df80aaabd2b4629544337167ba (patch)
tree6e1b0fef494b7c8af393089dd92554f917016e10 /gcc/testsuite
parent19916065b7fb26bbb36f7bbe5688ae2c1661dec3 (diff)
downloadgcc-5a599c460e3846df80aaabd2b4629544337167ba.zip
gcc-5a599c460e3846df80aaabd2b4629544337167ba.tar.gz
gcc-5a599c460e3846df80aaabd2b4629544337167ba.tar.bz2
re PR tree-optimization/85692 (Two source permute not used for vector initialization)
PR tree-optimization/85692 * tree-ssa-forwprop.c (simplify_vector_constructor): Try two source permute as well. * gcc.target/i386/pr85692.c: New test. Co-Authored-By: Jakub Jelinek <jakub@redhat.com> From-SVN: r260155
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog6
-rw-r--r--gcc/testsuite/gcc.target/i386/pr85692.c18
2 files changed, 24 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index ee9f633..1591122 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2018-05-11 Allan Sandfeld Jensen <allan.jensen@qt.io>
+ Jakub Jelinek <jakub@redhat.com>
+
+ PR tree-optimization/85692
+ * gcc.target/i386/pr85692.c: New test.
+
2018-05-11 Martin Liska <mliska@suse.cz>
PR sanitizer/85556
diff --git a/gcc/testsuite/gcc.target/i386/pr85692.c b/gcc/testsuite/gcc.target/i386/pr85692.c
new file mode 100644
index 0000000..45594ff
--- /dev/null
+++ b/gcc/testsuite/gcc.target/i386/pr85692.c
@@ -0,0 +1,18 @@
+/* { dg-do compile } */
+/* { dg-options "-O2 -msse4.1" } */
+/* { dg-final { scan-assembler "unpcklps" } } */
+/* { dg-final { scan-assembler "blendps" } } */
+/* { dg-final { scan-assembler-not "shufps" } } */
+/* { dg-final { scan-assembler-not "unpckhps" } } */
+
+typedef float v4sf __attribute__ ((vector_size (16)));
+
+v4sf unpcklps(v4sf a, v4sf b)
+{
+ return (v4sf){a[0],b[0],a[1],b[1]};
+}
+
+v4sf blendps(v4sf a, v4sf b)
+{
+ return (v4sf){a[0],b[1],a[2],b[3]};
+}