diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2018-05-11 13:38:49 +0600 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-05-11 09:38:49 +0200 |
commit | 5a599c460e3846df80aaabd2b4629544337167ba (patch) | |
tree | 6e1b0fef494b7c8af393089dd92554f917016e10 /gcc/testsuite/gcc.target | |
parent | 19916065b7fb26bbb36f7bbe5688ae2c1661dec3 (diff) | |
download | gcc-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/gcc.target')
-rw-r--r-- | gcc/testsuite/gcc.target/i386/pr85692.c | 18 |
1 files changed, 18 insertions, 0 deletions
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]}; +} |